=
ホーム
On Your Mark
ホーム
/
設計(Java)
/
【Java】 Effective Java 第二版 お勉強 過剰な同期
2014年1月11日土曜日
Java
基本
設計(Java)
t
f
B!
P
L
# 並行性 ## 今日 読んだところ P 256~261 ## 項目 過剰な同期は避ける<br /> ## 過剰な同期 不十分な同期は危険だが、過剰すぎる同期は逆にパフォーマンス低下やデットロック<br />、 あるいは予想が付かない振る舞いを起こすの可能性がある。<br /> ## 例えばデットロック synchronizedを持つ AとBのメソッドがあった場合、<br /> AメソッドからBメソッドを呼ぶ処理と並行して、<br /> BメソッドからAメソッドを呼ぶ処理を実行した場合、デットロックになる。<br /> ## オブザーバーパターン オブザーバーパターンやイベントリスナーのように<br /> クライアントが提供しているメソッドを同期中に呼び出すと<br /> デットロックが発生しやすい。<br /> ## オープンコール 例えば同期するオブジェクトを<br /> synchronized内で一旦ローカル変数にコピーしてから、<br /> クライアントのメソッドをロックせずに実行すれば、この問題は解決する。<br /> これをオープンコールという。<br /> ## パフォーマンス 並行処理を行う機械を損失すると、<br /> すべてのコアがメモリの一貫したビューを持つことを保証する必要があるため遅延する。<br /> そのために可変クラスをスレッドセーフにし、全体を外部から同期せず内部で同期する。<br />
Translate
このブログを検索
ブログアーカイブ
►
2020
(38)
6月 2020
(6)
5月 2020
(10)
4月 2020
(10)
3月 2020
(4)
2月 2020
(5)
1月 2020
(3)
►
2019
(4)
1月 2019
(4)
►
2018
(23)
12月 2018
(3)
4月 2018
(11)
3月 2018
(9)
▼
2014
(20)
7月 2014
(3)
1月 2014
(17)
►
2013
(166)
12月 2013
(15)
11月 2013
(22)
10月 2013
(31)
9月 2013
(26)
8月 2013
(32)
7月 2013
(40)
今週の人気の記事
【まとめ】GWはおうちでぬりえ 鉄道会社公式の電車ぬりえをまとめた
【MySQL】文字列をバイト数で切り取る
【まとめ】おうちでペーパークラフト 鉄道会社公式のペーパークラフトをまとめた
【PHP】PHPでSFTP接続
【調査】ゾンビランドサガ から佐賀に関連があるものを調べる 第4話
フォロワー
On Your Mark
QooQ
0 件のコメント:
コメントを投稿