混沌としてきた。
4月から仕事はじまりまして。まったくコードかけなかった。笑
いろいろ投げ捨てて、とりあえず、javaの並列を知りたいと言う事で、
web serverを書くことに。
現在のウェブサーバの潮流は二つあるらしい。一つは、マルチスレッドで受付を待つもの。そして、もう一つは、イベント通知のもの。
イベント通知は、昔でいう、poll/selectなんだけど、現在はC10K問題で、epollがカーネル内部に実装される(bsdだとkqueue)ことになり、実際、かなり昔にepollサーバを書いた事がある。
(epollは、ここがヒットした。http://alpha.mixi.co.jp/2007/10631/)
しかし、これでもマルチコアの恩恵は行かせないと言う事で、さらにHaskellでハンドリングをすることで、並列ライブラリの恩恵を活かすウェブサーバがあるとか、ないとか。
あえてjavaでやるのは、epollなんかが、どうやってラップされるのか知らないってこと。C言語はほんとにカーネルと密接に絡めるから、できないことはないと言っても過言ではないが、Javaはどうなんだろう?ってのが興味。(もちろん、JNI使う必要があれば、使う事になるが)
マルチスレッド型+epoll利用をあえてjavaで書く意味があるのかわからないが、とりあえず挑戦中。