タグ

ブックマーク / wadahiro.hatenablog.com (1)

  • HashMapでOutOfMemoryErrorが発生するケース - wadahiroの日記

    HashMapの同期化をしていないと無限ループになるという話はこことかここで説明されているのでかなり有名かと思います。 今回不運にも遭遇したのは、同期化をしていなくてOutOfMemoryError(以下、OOM)が起きてしまうというケース。かなり特殊かもしれないですが、同じ問題で悩む人が今後いればと思い、記録しておきます。 再現方法 早速再現方法を。以下のようなコードを実行すると、たまにOOMが起きてしまいます。HashMapに異なるデータをputをし続けてデータが増加し続けるという単純なリークではありませんよ! ここで行っていることは、 HashMapにデータを追加(キーは0-3000までのランダムな数字)するスレッド×2 追加されたデータを全て削除するスレッド×1 を同時に実行しているだけです。キーは0-3000で固定なので、どんどんHashMapの中身が増加し続けるということはあり

    HashMapでOutOfMemoryErrorが発生するケース - wadahiroの日記
  • 1