use*_*384 7 java scala locking range
我有一个大型数组可供多个线程访问.单锁效率不高.在java或scala中有一个范围锁类吗?
Bri*_*ris 6
不在标准库中.然而,ConcurrentHashMap执行此操作,在内部将哈希表表示为"段"(默认情况下为16个),其中每个段都使用单独的锁进行保护.此外,该线程询问相同的问题,除了ArrayList而不是数组.虽然没有结果,但如果您能够在使用上妥协,它会带来替代品.
更新:也许AtomicReferenceArray 和 朋友会提供你正在寻找的效率,同时"为数组元素提供易变的访问语义"(JCIP 15.3).
cor*_*iKa 1
将数组包装在控制访问的线程安全对象内。您可以自己管理范围,或者将数组分成多个范围,每个范围都有自己的锁,并以这种方式引用它。
归档时间:
15 年,3 月 前
查看次数:
487 次
最近记录: