2009-03-15から1日間の記事一覧
シンクロナイザは自身のステートを用いてスレッドのコントロールフローを調停する機能。色々な種類がある。 Latch Latchはゲートみたいなもの。Latchが最終ステートに到達するまでは、全てのスレッドが先に進むのをブロックするが、最終ステートに達すると以…
あるスレッドAが高価な計算処理Xを計算中の場合に、別のスレッドBがXの計算結果を得たい場合があるとする。この場合、BはAの計算が終わるのを待ち、Xを返すとメモリを節約することが出来る。ところがコレは通常のConcurrentMapを使ったキャッシュでは実現出…
まず英語。進捗は芳しくない。7章まで。この調子ではいつ終わるか分からないなぁ。 次にコンピュータ。何となく興味を持って始めたが、意外と面白くて今週はこちらの方が進んだ。第一部完了。段々難易度が高くなってきて、進むのが遅くなってきている。後半…
スレッドの割り込みについて。BlockingQueueのputやtakeは、InterruptedExceptionをスローする。例えばtakeの場合は、次の要素が無くてスレッドが待機状態になっている間、別スレッドが割り込みを行うとスローされる。割り込みされたスレッドは、出来るだけ…
ProducerとConsumerが互いを意識しなくて良いように、間接的に依存するプールを用いる。BlockingQueueがこのパターンをサポートする。BlockingQueueはスレッドセーフ。 Producerの方が遅ければ, Consumerは待つだけ Consumerの方が遅ければ, Queueにサイズ制…