|
|
1
15
前段时间我为自己发明了这样的东西。我称之为等价类锁,意思是,它锁定所有与给定事物相等的事物。你可以得到它 from my github ,并根据Apache2许可证使用它,如果您愿意的话,也可以直接阅读并忘记它! |
|
|
2
8
你可以尝试使用可重入锁,这样你就有了
|
|
3
7
你可以试试下面的小技巧
100%保证返回相同的实例。
这个
这将保证锁定只发生在这个精确的方法上。这是为了避免死锁。 |
|
4
4
首先:
ConcurrentHashMap 可以用来实现这一点,因为CHM在内部由段(子映射)组成,并且每个段有一个锁。这使您的并发性等于段数(默认为16,但可配置)。 对于划分ID空间和创建锁集,还有许多其他可能的解决方案,但您对清理和内存泄漏问题非常敏感,在维护并发性的同时处理这些问题是一项棘手的工作。您需要对每个锁使用某种引用,并小心地管理旧锁的逐出,以避免逐出正在被锁定的锁。如果你走这条路,使用 ReentrantLock 或 ReentrantReadWriteLock 还有一些关于这个的东西和一个StripedMap的例子 Java Concurrency in Practice |
|
5
4
我想说你已经很快找到解决办法了。制造
|
|
|
6
0
比如:
|
|
|
7
0
用(同步的)地图试试看。
|
|
|
8
0
在这里,我会使用一个规范化映射,它将
一旦有了规范化映射,就可以这样编写锁保护代码:
规范化映射将确保
|
|
|
9
0
您可以创建一个列表或一组活动ID并使用wait和notify:
解决的问题:
存在的问题: |
|
|
10
0
我可能会在游戏中迟到,但此解决方案不会泄漏任何内存,而且您不必记住执行任何锁释放:
要使用它,只需添加一个依赖项:
|
|
|
user29759326 · 如何返回递归函数中的最后一个值? 9 月前 |
|
|
malife89 · 将java中的字符串读取为正确的日期格式 9 月前 |
|
|
Tim · 在java中,有没有更快的方法将字节数组写入文件? 9 月前 |
|
|
rudraraj · java中未声明最终变量 10 月前 |
|
|
Bala Ji · 以下BFS的实施效率如何? 10 月前 |