=
ホーム
On Your Mark
ホーム
/
設計(Java)
/
【Java】 Effective Java 第二版 お勉強 同期
2014年1月10日金曜日
Java
基本
設計(Java)
t
f
B!
P
L
# 並行性 ## 今日 読んだところ P 251~255 ## 項目 共有された可変データへのアクセスを同期する
## アトミック 複数のスレッドにより変数が並行して変更されたとしても、
どれかのスレッドによりその変数に保存された値を返すことが保証されます。
longとdouble以外のプリミティブ変数はアトミックになります。
ただしアトミックでは、変更された変数の値がどのスレッドから見ても
同じに見えるという保障はない。
## ではどうするか synchronizedメソッドを使うことで、変数の変更の可視性が保証される。
## つまり同期とは アトミックと可視性を保証することで同期すると言うことになる。
## volatile longとdouble以外がはアトミックを保証するので、
可視性だけを保証するならばvolatileを使用しても良い。
※synchronizedはアトミックと可視性を保証する
ただし、演算付き変数の場合は、演算がアトミックでないため、volatileだけでは同期されない。
※synchronizedメソッドを使う等、同期が必要
## 演算にアトミックを設けたいならば java.util.concurrent.atomic を使う
AtomicLongを使えば、アトミックなlongが使える。
## Thread.stopは使わない 場合によってはデータを破壊する可能性がある。
安全でないため、非推奨になっている。
## 可変データを共有しない 不変データのみを共有し、可変データを共有しないければ同期の問題を避けれる。
極力可変データを共有しない設計が望ましい。
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)
今週の人気の記事
【考察】シンカリオン 名前の由来を考察 -運転士編-
【MySQL】文字列をバイト数で切り取る
【まとめ】GWはおうちでぬりえ 鉄道会社公式の電車ぬりえをまとめた
【まとめ】おうちでペーパークラフト 鉄道会社公式のペーパークラフトをまとめた
【考察】シンカリオン 名前の由来を考察 -キトラルザス編-
フォロワー
On Your Mark
QooQ
0 件のコメント:
コメントを投稿