Fastutil似乎是Java中最快的集合选择。
有这些javadoc:http://fastutil.di.unimi.it/docs/it/unimi/dsi/fastutil/longs/Long2ObjectMaps.SynchronizedMap.html
但是我很难找到用法的例子。
如何获得同步的(线程安全的?)地图?一个不可变的映射?
发布于 2017-08-16 01:00:15
每种映射类型都有自己的同步包装类(例如,上面链接的Long2ObjectMaps.SynchronizedMap )。要使用它,请实例化一个具体的地图实现,然后使用相应的…Maps.synchronize()方法来获取同步版本:
Long2ObjectMap<Foo> unsynched = new Long2ObjectOpenHashMap<>();
// this is actually a Long2ObjectMaps.SynchronizedMap
Long2ObjectMap<Foo> synched = Long2ObjectMaps.synchronize(unsynchronized);发布于 2022-02-06 16:56:03
有一个轻量级的线程安全的替代方案:FastUtil Concurrent Wrapper。
与默认的通过synchronized(mutex)的快速同步方法相比,包装器使用了striped ReadWriteLocks (具有不同的模式),在某些情况下具有更好的性能。
https://stackoverflow.com/questions/41067594
复制相似问题