ConcurrentHashMap的putAll方法可以保证put的所有元素在同一个元子操作中吗?
1、ConcurrentHashMap的putAll方法可以保证put的所有元素在同一个元子操作中吗?2、如果第1条可以保证,是否有同样可以保证元子性的removeAll...
1、ConcurrentHashMap的putAll方法可以保证put的所有元素在同一个元子操作中吗?
2、如果第1条可以保证,是否有同样可以保证元子性的removeAll的操作?如何操作
3、如果1条件不成立,如何保证元子性的同时提升读写并发? 展开
2、如果第1条可以保证,是否有同样可以保证元子性的removeAll的操作?如何操作
3、如果1条件不成立,如何保证元子性的同时提升读写并发? 展开
1个回答
展开全部
1,map的putAll和clear不可以保证在所有的元素在同一个元子操作中。ConcurrentHashMap 将 map中数据通过hash 散列到32个Segment 中,Segment 是 ConcurrentHashMap 一个内部类,他继承了ReentrantLock ,ConcurrentHashMap 将锁进行分化到每一个Segment中,只有对同一个Segment 元素的读写时 才会阻塞,否则是无阻塞的,这样就大大的提高了并发的执行速度。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询