[转载]聊聊并发(四)——深入分析ConcurrentHashMap

来源:互联网 发布:python安装完怎么用 编辑:程序博客网 时间:2024/05/21 19:49

文章引自infoQ,感谢方腾飞

原文地址:http://www.infoq.com/cn/articles/ConcurrentHashMap

术语定义

术语英文解释哈希算法hash algorithm是一种将任意内容的输入转换成相同长度输出的加密方式,其输出被称为哈希值。哈希表hash table根据设定的哈希函数H(key)和处理冲突方法将一组关键字映象到一个有限的地址区间上,并以关键字在地址区间中的象作为记录在表中的存储位置,这种表称为哈希表或散列,所得存储位置称为哈希地址或散列地址。

线程不安全的HashMap

因为多线程环境下,使用HashMap进行put操作会引起死循环,导致CPU利用率接近100%,所以在并发情况下不能使用HashMap,如以下代码

final HashMap<String, String> map = new HashMap<String, String>(2);Thread t = new Thread(new Runnable() {    @Override    public void run() {        for (int i = 0; i < 10000; i++) {            new Thread(new Runnable() {                @Override                public void run() {                    map.put(UUID.randomUUID().toString(), "");                }            }, "ftf" + i).start();        }    }}, "ftf");t.start();t.join();
原创粉丝点击