マルチスレッド処理の基礎(4) - クラス設計に関する留意事項 Part 2
またまた間が空いてしまいましたが、前回の記事の続きです。
スレッドとインスタンスの所有関係を明確化する - スレッドセーフでないクラスの場合
スレッドセーフでないクラスのインスタンスを保護する方法は、基本的には以下の2つの方法しかありません。
ただし、2.の方法は排他制御に誤りがないことの確認がレビューのみでしかできないため、品質を確保することが難しくなります。
そのため、通常は設計レベルでスレッドとインスタンスの所有関係を明確・固定化し、1.の方法で安全性を保証するようにします。実現方法の詳細は、別途解説予定です。
※図中の「actor」は、UML標準で用いられるアクター(人型アイコンで表記するもの)ではなく、並行処理の手法として用いられるアクタークラスを意図しています。