首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在fastutils中实现线程安全或不可变的集合?

如何在fastutils中实现线程安全或不可变的集合?
EN

Stack Overflow用户
提问于 2016-12-10 03:32:23
回答 2查看 1.1K关注 0票数 1

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

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

但是我很难找到用法的例子。

如何获得同步的(线程安全的?)地图?一个不可变的映射?

EN

回答 2

Stack Overflow用户

发布于 2017-08-16 01:00:15

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

代码语言:javascript
复制
Long2ObjectMap<Foo> unsynched = new Long2ObjectOpenHashMap<>();

// this is actually a Long2ObjectMaps.SynchronizedMap
Long2ObjectMap<Foo> synched = Long2ObjectMaps.synchronize(unsynchronized);
票数 1
EN

Stack Overflow用户

发布于 2022-02-06 16:56:03

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41067594

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档