More Related Content
Similar to マルチスレッド学習のミッシングリンク
Similar to マルチスレッド学習のミッシングリンク (20)
マルチスレッド学習のミッシングリンク
- 12. マッピングしてみる
抽象度: 高
スレッドの概念 A B C
(ぼくの意識ではここに何かあるのに簡潔に説明しているものが少ない)
デザインパターンなど B C
各言語毎のスレッド API A C
抽象度: 低
12
- 15. で、何よ?
原則
「スレッド間で共有されるオブジェクトを意識する」
15
- 20. 競合
スレッド A 共有オブジェクト スレッド B
get: 100
get: 100
set: 100 + 10
set: 100 + 10
110 ?!
20
- 21. デッドロック
スレッド A 共有A 共有B スレッド B
lock
lock
lock (block)
lock (block)
21
- 23. 共通項が見えるから
どちらも
「複数のスレッド」が「共有オブジェクト」
を操作している
23
- 26. 具体例
Tomcat で Servlet API を使ってプログラミング
マルチスレッドについて意識することは (おそらくほとんど) 必要ない
何故か?
スレッド間でオブジェクトを共有していないから
各ワーカスレッドはリクエスト単位で生成される
全く別々の HttpServletRequest オブジェクトを持つ
26
- 28. つまり
スレッド A 共有オブジェクト スレッド B
こいつらのことは
特に気にしない
こいつはいつ何時
並列に呼ばれても
良いように備える
スレッドセーフ
28