博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JDK中ConcurrentHashMap效率测试
阅读量:5775 次
发布时间:2019-06-18

本文共 1486 字,大约阅读时间需要 4 分钟。

 比较HashMap HashTable 和ConcurrentHashMap的效率.

一般情况下,达到一定的数量之后JDK1.5之后提供的ConcurrentHashMap集合类的效率是前两者的3~4倍左右.

前两种集合类的效率比较接近. 

 ConcurrentHashMapTest.java

1 import java.util.Collections; 2 import java.util.HashMap; 3 import java.util.HashSet; 4 import java.util.Hashtable; 5 import java.util.Map; 6 import java.util.concurrent.ConcurrentHashMap; 7  8 //测试三种并发集合的读写效率 9 public class ConcurrentHashMapTest {10 11     public static void main(String[] args) {12         //HashMap不是线程安全的,通过 Collections.synchronizedMap()转换成线程安全的.13         final Map
hm = Collections.synchronizedMap(new HashMap
());14 //HashTable内部自带同步,线程安全的.15 final Map
ht = new Hashtable
();16 //JDK1.5之后提供的并发集合.17 final Map
chm = new ConcurrentHashMap
();18 putMap(hm);//输出:1332119 putMap(ht);//输出:1183420 putMap(chm);//输出:8312 数据量达到一定程度之后,会比前两种快3~4倍左右.21 22 }23 24 private static void putMap(final Map
hm) {25 long begin = System.currentTimeMillis();26 for (int k = 0; k < 100; k++) { //为了让效果更明显,再循环100次.27 for (int i = 0; i < 1000; i++) { //1000条线程28 final int key = i;29 new Thread(new Runnable() {30 @Override31 public void run() {32 for (int j = 0; j < 1000; j++) { //每条线程向其中添加1000次33 hm.put(key, j);34 }35 }36 }).start();37 }38 }39 long end = System.currentTimeMillis();40 System.out.println(end - begin);41 }42 }

 

转载于:https://www.cnblogs.com/DreamDrive/p/6209275.html

你可能感兴趣的文章
mysql
查看>>
2012年电信业八大发展趋势
查看>>
Web日志安全分析工具 v2.0发布
查看>>
JS重载
查看>>
python2和python3同安装在Windows上,切换问题
查看>>
php加速工具xcache的安装与使用(基于LNMP环境)
查看>>
android超链接
查看>>
redhat tomcat
查看>>
统计数据库大小
查看>>
IO流的学习--文件夹下文件的复制
查看>>
第十六章:脚本化HTTP
查看>>
EXCEL表中如何让数值变成万元或亿元
查看>>
nginx在响应request header时候带下划线的需要开启的选项
查看>>
Linux下DHCP服务器配置
查看>>
AndroidStudio中导入SlidingMenu报错解决方案
查看>>
我的IDEA配置
查看>>
myeclipse显示行号
查看>>
编写高性能的java程序
查看>>
Spring 的配置详解
查看>>
linux已经不存在惊群现象
查看>>