1

Fastutil 似乎是 Java 中集合的最快选择。

有这些javadocs: http: //fastutil.di.unimi.it/docs/it/unimi/dsi/fastutil/longs/Long2ObjectMaps.SynchronizedMap.html

但我很难找到用法示例。

我怎样才能有一个同步的(线程安全的?)映射?不可变的地图?

4

2 回答 2

1

每种地图类型都有自己的同步包装类(例如Long2ObjectMaps.SynchronizedMap,如您在上面链接的那样)。要使用它,请实例化一个具体的地图实现,然后使用相应的…Maps.synchronize()方法获取同步版本:

Long2ObjectMap<Foo> unsynched = new Long2ObjectOpenHashMap<>();

// this is actually a Long2ObjectMaps.SynchronizedMap
Long2ObjectMap<Foo> synched = Long2ObjectMaps.synchronize(unsynchronized);
于 2017-08-15T17:00:15.240 回答
0

有一个轻量级的线程安全替代方案:FastUtil Concurrent Wrapper

与通过synchronized(mutex)The Wrapper 使用的默认 fastutil 同步方法striped ReadWriteLocks(使用不同的模式)相比,在某些情况下具有更好的性能。

于 2022-02-06T16:56:02.827 回答