pthread本

オライリーから出ているPthreadの解説本を通読してみた。前半は割とゆっくり、後半は「そんな議論があるのか、なるほど」と眺める程度に。

mutexや状態変数、シグナルを使った同期制御の話とか、スレッドプールの実装例、カーネルとライブラリの実装アプローチの違いだとか、どの話題もすごくおもしろい。寝たスレッドをどうやって起こすか、とか。ロックの粒度の話とか、リーダー/ライターロックといった「緩いロックによるパフォーマンス低下防止」あたりの話も、なるほどなぁという感じ。

しかし、そもそも今どきATMサーバ(って銀行のATM)をCとPthreadで実装するやつなんているんだろうかという素朴な疑問が、、、。Javaが成功した理由がうっすら分かった気がした。素でポインタやメモリ管理をやりつつ、低レベルのロック機構を使ってマルチスレッドアプリケーションをデザインするのって、やたらとデバッグが大変そう。職人レベルになれば違うのかもしれないけど、一発で動くものが人間に作れる気がしない。

ともあれ、買ったきりまったく読む気がしなかったJavaのマルチスレッド解説本も眺めてみようという気になった。