阿神2017-04-18 10:10:52
今日は、可変オブジェクトの安全なリリースとアクセスに関する実践的な並行プログラミングを見たところです:
安全なリリース:
静的初期化関数でオブジェクト参照を初期化します。
オブジェクトの参照を volatile または AtomicReference に保存します
オブジェクトの参照を、オブジェクトを正しく構築する最終型に保存します
ロックの範囲内でオブジェクトを保存します。
安全なアクセス:
スレッドが閉じられました
読み取り専用共有
スレッドセーフな共有、公開されたオブジェクトの内部アクセス方法はスレッドセーフであり、外部同期は必要ありません
オブジェクトを保護し、外部アクセスを制限して変更可能なオブジェクトを公開し、変更可能なオブジェクトにアクセスするためのインターフェイスを指定します。
static List<String> arrayList = new ArrayList<>();
これは安全な公開の最初のルールに準拠しています
次に、最初の 3 つの状況ではリストに安全にアクセスしてはいけないため、外部の世界を制限することに頼るしかありません。オブジェクトの公開、つまりロック。
PHP中文网2017-04-18 10:10:52
被験者の要求に応じて実装できますが、この要件の実装は非常に奇妙です。
リーリーこの方法に加えて、join
を渡して countdownlatch
を渡すことによっても実現できます。本当に主題のようになりたい場合は、マルチスレッド