いくつかのスレッドが同時にアクセスして変更する、怪しげなコードに遭遇しました。JavadocHashSetは、同時実行時の動作が「非決定的」であると説明しているだけなので、これがどのような影響を与える可能性があるかを知りたいと思いました。 、非同期アクセス。
remove(element)具体的には、への呼び出しが戻る可能性はありますtrueが、呼び出しの効果が他のスレッドに表示されることはありません(つまり、contains(element)常にtrue他のスレッドに戻ります)。
PS:安心させるために、私はこのコードが悪いことを知っているのでHashSet、同等の同期されたコレクションに置き換えます。