【デザインパターン】【非同期】デザインパターン / マルチスレッド の分類 ~目次~

■ 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.html
C#
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


関連記事

デザインパターン / マルチスレッド の分類 ~目次~

https://blogs.yahoo.co.jp/dk521123/34195603.html