Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    1. COI've edited the question to be clearer that it was my understanding from the documentation that Guava wants me to switch to `CacheBuilder`, as it deprecated so much of `MapMaker`. If `MapMaker` is still find to use for certain situations, that's fine with me. And I don't think the concurrency I was talking about is the same thing you're talking about, as the GC's releasing of weak references happens without the need to add any sort of extra multithreaded support to the application (e.g. a single thread doesn't need a lock to access a `WeakReference`).
      singulars
    2. CO@GarretWilson When that weak reference is cleared, something has to cause the entry to get cleaned up from the map. That something can happen concurrently to your application threads.
      singulars
    3. COThis is not necessarily what happens in `WeakHashMap`, and that's not the same thing as the "concurrency" in the sense of `MapMaker` and `CacheBuilder`. `WeakHashMap` synchronizes on its queue whenever it expunges expired references---but this doesn't make `WeakHashMap` "concurrent" (it is fail-safe and throws a `ConcurrentModificationException`). `ConcurrentHashMap` (and things produced by `MapMaker`) bring true concurrency for multi-thread access by essentially maintaining multiple maps internally---something I don't need or want if I control access at a higher level using read/write locks.
      singulars
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload