■ Single Thread Execution
* この橋を渡れるのは、たった一人(別スレッドが処理が終わるまで待つ)
関連記事
https://blogs.yahoo.co.jp/dk521123/34224730.html■ Immutable
* 壊したくとも、壊せない (インスタンスの内容が変化しない) * immutable(イミュータブル) = 不変の
関連記事
https://blogs.yahoo.co.jp/dk521123/34228254.html■ Guarded Suspension
* 用意できるまで、待っててね(処理要求に対して、実行可能な状態になるまで待機させる)
関連記事
https://blogs.yahoo.co.jp/dk521123/32928012.html■ Balking
* 必要なかったら、やめちゃおう(別スレッドが処理していたら、処理を実行せずに返す) * ざっくり言うと、「ブロック」。 * Balking (ボーキング) ⇒Balk「ボーク」(野球のボークと同じで、投球動作を「途中でやめる」)
関連記事
https://blogs.yahoo.co.jp/dk521123/34200869.html■ Producer-Consumer
* わたしが作り、あなたが使う (「生産者」 (producer) スレッド群がデータを生成して「通信路」に追加し、 「消費者」 (consumer) スレッド群がそのデータを「通信路」から取り出して処理する)
関連記事
https://blogs.yahoo.co.jp/dk521123/32914080.htmlC#
https://blogs.yahoo.co.jp/dk521123/37943991.html
■ Read-Write Lock
* みんなで読んでもいいけれど、読んでる間は書いちゃダメ (複数のスレッドで同時に読みのを受け付けが、読んでいる間は書き込めない)
関連記事
https://blogs.yahoo.co.jp/dk521123/33113327.html■ Thread-Per-Message
* この仕事やっといてね(別のクラスに仕事を投げ、自分は次の仕事をやる)
関連記事
https://blogs.yahoo.co.jp/dk521123/34200159.html■ Worker Thread
* 仕事が来るまで待ち、仕事が来たら働く (仕事を1つずつ、処理を行い、仕事がなかったら、新しい仕事が届くまで待つ) * 別名 = 「Background Thread」、「Thread Pool(スレッドプール)」
Thread-Per-Message パターン との違い
* Worker Thread パターンではスレッドを使いまわし、リサイクルする
参考文献
http://www.hyuki.com/dp/dp2_ch08.pdf関連記事
https://blogs.yahoo.co.jp/dk521123/32918314.html■ Future
* 引換券をお先にどうぞ(ある処理を別スレッドで非同期に実行させて、その結果を受けたいときに用いる)
関連記事
https://blogs.yahoo.co.jp/dk521123/32918692.html■ Two-Phase Termination
* 後片付けしてから、おやすみなさい (スレッドの処理をメインの処理と終了処理に分けて、安全にスレッドを終了させる)
関連記事
https://blogs.yahoo.co.jp/dk521123/34228663.html■ Thread-Specific Storage
* スレッドごとのコインロッカー (スレッドの入り口は1つでも、内部で固有領域が用意し、スレッドごとに別々に保存・取得する)
関連記事
https://blogs.yahoo.co.jp/dk521123/32910143.html■ Active Object
* 非同期メッセージを受け取る、能動的なオブジェクト (外部から非同期にメッセージを受け取っても、自分固有のスレッドで、 自分の都合のいいタイミングで処理を実行させる)
関連記事
https://blogs.yahoo.co.jp/dk521123/23819359.html参考文献
http://www.hyuki.com/dp/dpinfo.htmlhttp://d.hatena.ne.jp/otuzak/20080527/1211864889
http://www.hyuki.com/dp/cat_index.html#thread
サンプル
http://blog.livedoor.jp/kosuke_pg/archives/51764641.htmlhttp://blog.livedoor.jp/kosuke_pg/archives/51766045.html
http://blog.livedoor.jp/kosuke_pg/archives/51771763.html
http://blog.livedoor.jp/kosuke_pg/archives/51774038.html
http://www.hyuki.com/dp/dp2.html#download