Submit Search
マルチスレッド デザインパターン ― Single Threaded Execution
3 likes
1,630 views
Appresso Engineering Team
「デザインパターン入門 マルチスレッド編」輪読会、第1回「Single Threaded Execution」のスライド。
Technology
Read more
1 of 14
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
14
More Related Content
PDF
困った時のDev toolsの使い方(初心者向け)
yoshikawa_t
PDF
レンダリングを意識したパフォーマンスチューニング
Hayato Mizuno
KEY
Dom
Kazunori Tokuda
PDF
Chrome Developer Toolsを使いこなそう!
yoshikawa_t
PDF
20150302 java8 第一回_ラムダ式(1)
Appresso Engineering Team
PPTX
Effective Java 輪読会 項目77-78
Appresso Engineering Team
PPTX
Effective Java 輪読会 項目74-75
Appresso Engineering Team
PDF
JavaScript 勉強会 ― 変数・演算子・文
Appresso Engineering Team
困った時のDev toolsの使い方(初心者向け)
yoshikawa_t
レンダリングを意識したパフォーマンスチューニング
Hayato Mizuno
Dom
Kazunori Tokuda
Chrome Developer Toolsを使いこなそう!
yoshikawa_t
20150302 java8 第一回_ラムダ式(1)
Appresso Engineering Team
Effective Java 輪読会 項目77-78
Appresso Engineering Team
Effective Java 輪読会 項目74-75
Appresso Engineering Team
JavaScript 勉強会 ― 変数・演算子・文
Appresso Engineering Team
More from Appresso Engineering Team
(20)
PDF
JavaScript 勉強会 ― 型と値
Appresso Engineering Team
PPTX
Effective Java 輪読会 項目69-70追加
Appresso Engineering Team
PPTX
Effective Java 輪読会 項目69-70
Appresso Engineering Team
PPTX
Effective Java 輪読会 項目66-68
Appresso Engineering Team
PPTX
Effective Java 輪読会 項目71-73
Appresso Engineering Team
PPTX
Java Day Tokyo 2014 まとめ (chen)
Appresso Engineering Team
PPTX
Effective Java 輪読会 項目63-65
Appresso Engineering Team
PPTX
Effective Java 輪読会 項目60-62
Appresso Engineering Team
PPTX
Effective java 輪読会 項目57-59
Appresso Engineering Team
PPTX
Effective Java 輪読会 項目49-52
Appresso Engineering Team
PPTX
Effective Java 輪読会 項目45-48
Appresso Engineering Team
PPTX
Effective Java 輪読会 項目53-56
Appresso Engineering Team
PPTX
Effective Java 輪読会 第7章 項目43-44
Appresso Engineering Team
PDF
Effective Java 輪読会 第7章 項目41-42
Appresso Engineering Team
PPTX
Effective Java 輪読会 第7章 項目38-40
Appresso Engineering Team
PPTX
Effective Java 輪読会 第6章 項目35-37
Appresso Engineering Team
PPTX
Effective java 輪読会 第6章 項目32-34
Appresso Engineering Team
PPTX
Effective java 輪読会 第6章 項目30-31
Appresso Engineering Team
PPTX
Effective java 輪読会 第5章 項目26-29
Appresso Engineering Team
PPTX
Effective java 輪読会 第5章 項目23-25
Appresso Engineering Team
JavaScript 勉強会 ― 型と値
Appresso Engineering Team
Effective Java 輪読会 項目69-70追加
Appresso Engineering Team
Effective Java 輪読会 項目69-70
Appresso Engineering Team
Effective Java 輪読会 項目66-68
Appresso Engineering Team
Effective Java 輪読会 項目71-73
Appresso Engineering Team
Java Day Tokyo 2014 まとめ (chen)
Appresso Engineering Team
Effective Java 輪読会 項目63-65
Appresso Engineering Team
Effective Java 輪読会 項目60-62
Appresso Engineering Team
Effective java 輪読会 項目57-59
Appresso Engineering Team
Effective Java 輪読会 項目49-52
Appresso Engineering Team
Effective Java 輪読会 項目45-48
Appresso Engineering Team
Effective Java 輪読会 項目53-56
Appresso Engineering Team
Effective Java 輪読会 第7章 項目43-44
Appresso Engineering Team
Effective Java 輪読会 第7章 項目41-42
Appresso Engineering Team
Effective Java 輪読会 第7章 項目38-40
Appresso Engineering Team
Effective Java 輪読会 第6章 項目35-37
Appresso Engineering Team
Effective java 輪読会 第6章 項目32-34
Appresso Engineering Team
Effective java 輪読会 第6章 項目30-31
Appresso Engineering Team
Effective java 輪読会 第5章 項目26-29
Appresso Engineering Team
Effective java 輪読会 第5章 項目23-25
Appresso Engineering Team
Ad
マルチスレッド デザインパターン ― Single Threaded Execution
1.
第1回 Single Threaded
Execution 開発部 てるー
2.
マルチスレッドプログラムの安全性 安全性とは、オブジェクトのフィールドが予想外の 値をとらないことを意味する
複数のスレッドが利用しても安全性が保たれるクラ スをスレッドセーフなクラスと呼ぶ
3.
Single Threaded Execution
パターンとは ● 同時に1つのスレッドだけしか処理を実行できな いように制限を設けるパターン ● 別の呼び方 ○ Critical Section ○ Critical Region
4.
登場人物 ● SharedResource
役 ○ 複数のスレッドからアクセスされるクラス ○ もっているメソッドは以下の2つに分類される ■ safeMethod ■ unsafeMethod
5.
safeMethod 複数のスレッドから同時に呼び出しても、もともと 問題のないメソッド
6.
unsafeMethod 複数のスレッドから同時に実行されると、インスタ ンスの状態が矛盾する恐れのあるメソッド
7.
unsafeMethod 複数のスレッドから同時に実行されると、インスタ ンスの状態が矛盾する恐れのあるメソッド
複数のスレッドからアクセスされないようにガード する必要がある
8.
解決法 unsafeMethod を、同時に1つのスレッドからしか
アクセスできないようにガードする Java では、unsafeMethod を synchronized メソッ ドにすることでガードを実現する
9.
どんなときに使うのか? ● マルチスレッドのとき
● 複数のスレッドからアクセスされるとき ● 状態が変化する可能性があるとき ● 安全性を保つ必要があるとき
10.
デッドロック 2つのスレッドが2つのロックを取り合い、互いに相 手のスレッドがロックを解放するのを待つ現象。
11.
Single Threaded Execution
パターン がデッドロックを起こす条件 1. 複数の SharedResource 役がある 2. スレッドが、ある SharedResource 役のロックを取ったま ま、他の SharedResource 役のロックを取りに行く 3. SharedResource 役のロックを取る順序が定まっていない
12.
継承異常 SharedResource 役のフィールドがサブクラスから
アクセス可能になっている + サブクラスにガードされていない unsafeMethod を 作ってしまう = 安全性が失われる
13.
パフォーマンス Single Threaded
Execution パターンは以下の理 由により、パフォーマンスを低下させる ● ロックの取得に時間がかかるため ● スレッドの衝突によって待たされるため
14.
お わ り
Download