java LinkedList

最近LinkedListを同期化してないソースを見つけた。
そこが不具合起こすかは検証してないが、、、
作ったやつ直せよ。と思う。

この実装は同期化されません。複数のスレッドが同時にリストにアクセスし、それらの少なくとも 1 つが構造的にリストを変更した場合には、外部で同期をとる必要があります。構造的な変更とは 1 つ以上の要素を追加または削除するすべての処理です。要素の値だけを変更する処理は、構造的な変更ではありません。通常、リストの同期をとるには、リストを自然にカプセル化するオブジェクトで同期をとります。そのようなオブジェクトがない場合には、Collections.synchronizedList メソッドを使って「ラップ」します。これは、リストへの偶発的な非同期アクセスを防ぐために、作成時に行うのが最適です。

List list = Collections.synchronizedList(new LinkedList(...));

http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/java/util/LinkedList.html