Listをスレッドセーフな状態にするには、Listを生成する処理でCollections#synchronizedListメソッドを使ってください。
スレッドセーフにしてないと困るのはどんな場合か
→例えば複数のスレッドからList内の同じ要素に対して操作を行うケースです。
注意点としては、コレクションの繰り返し処理を行う場合や
Listメソッド呼び出しの結果を受けてListを操作する場合、
synchronized修飾子を使うようにしてください。
(例)
List<String> list = Collections.synchronizedList(new ArrayList<String>()); synchronized(list) { for (String str : list) { function(str); } }
ちなみにスレッドセーフなコレクションを生成するメソッドとしてはListの他に、
MapとSetにも用意されています。
(Collections#synchronizedMapやCollections#synchronizedSet)
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。