ConcurrentHashmap的线程数

时间:2019-06-21 20:05:44

标签: java java-8

ConcurrentHashmap(Java 8之前的版本)中,可以并发写入的线程数取决于段数或我们提供的并发级别?

1 个答案:

答案 0 :(得分:0)

段数取决于并发级别。因此,最终取决于并发级别。默认情况下为16。因此,可以同时在地图上操作16个线程。

例如,如果并发级别为10,则意味着在任何给定时间点,Segment数组的大小将为10或大于10,以便10个线程可以并行写入映射。由于更新锁是存储桶锁(每个段一个锁),这意味着10个线程可以同时在映射上运行,因为它们试图在不同的段上运行。

参考:

https://medium.com/@itsromiljain/curious-case-of-concurrenthashmap-90249632d335

https://www.geeksforgeeks.org/concurrenthashmap-in-java/