Is there java.util.concurrent equivalent for WeakHashMap?

前端 未结 6 1153
轻奢々
轻奢々 2020-12-08 13:38

Can the following piece of code be rewritten w/o using Collections.synchronizedMap() yet maintaining correctness at concurrency?

Collections.sy         


        
6条回答
  •  遥遥无期
    2020-12-08 14:04

    Does wrapping the WeakHashMap in a synchronized map still work correctly for what you want to do, since the garbage collector can modify the weakreferences directly at anytime, bypassing the synchronized map wrapper? I think WeakHashMap only truly works in a single threaded model.

    As mentioned above, the documentation for WeakHashMap at https://docs.oracle.com/javase/7/docs/api/java/util/WeakHashMap.html specifically says:

    "A synchronized WeakHashMap may be constructed using the Collections.synchronizedMap method"

    Which implies to me that this technique must work in tandem with the garbage collector's behavior (unless the documentation is buggy!)

提交回复
热议问题