0

スレッド間で共有される配列を作成したいと考えています。Java同期/スレッドセーフ/集中化された配列または他のスレッドで共有される代替

の配列を作成/作成することは可能ですか(同期/スレッドセーフである可能性があります。/'Centralized')、言い換えるとJavaのスレッド間で共有されますか?

ありがとうございます!

+0

はい。配列を 'private'にして、参照漏れをさせないでください。 * synchronized *である2つのメソッド 'set'と' get'を作成し、これらのメソッドを使用して配列からデータを変更/取得します。配列へのすべてのアクセスがこれらのメソッドを介して行われていて、配列の参照が漏れていなければ、行かなくてはなりません。 PS:機能を追加したい場合に備えて、新しい「最終的に同期した」メソッドを追加できます。 – TheLostMind

答えて

0

同期されたリストは、現時点で変更されているリストを反復することができます。つまり、リストの未公開の状態が表示されます。

チェックしてください。CopyOnWriteArrayListをチェックしてください。アトミックにリストを変更し、反復/検索するたびに有効なリストスナップショットを取得できます。欠点は、基礎となる配列がすべてのCopyOnWriteArrayListの変更にコピーされることです。

関連する問題