Pri*_*nka 5 java data-structures
如何在java中设计2D数组,使其允许多个线程在不使用同步的情况下修改或插入特定位置的值
好吧,如果没有同步,你就无法做到这一点。你唯一能做的就是减少锁的使用范围。如果您还不知道,请阅读有关锁粗化的内容。ConcurrentHashMap 使用它。想法是,不用锁定整个数组来进行修改,只需锁定要发生修改的数组片段(例如:开始、中间或结束)。这使数组 DS 保持开放状态以供其他线程读取和写入,并且不会发生阻塞,除非 2 个线程尝试同时更改同一段。
归档时间: |
|
查看次数: |
1788 次 |
最近记录: |