
线程安全
not_in_mountain
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
HashMap线程不安全原因
在多线程环境下,使用HashMap进行put操作会引起死循环,导致CPU利用率高达100%。原因:多线程会导致HashMap的Entry链表形成环形数据结构,一旦形成唤醒数据结构,Entry的next结点永远不为空,就会产生死循环获取entry。final HashMap map = new HashMap(2);Thread t = new Thread(new Runnabl原创 2017-09-05 00:33:57 · 543 阅读 · 0 评论 -
线程安全与非线程安全
线程安全类:一般是早期的jdk提供的集合,如Vector、Hashtable(这个t是小写,应该是编写时不规范的历史遗留问题)、StringBuffer;非线程安全类:在后期jdk版本逐渐提供并改善性能,如HashMap、LinkedList、ArrayList、StringBuilder等。因为它们的源码不用synchronized修饰方法和字段,大大提高了执行的性能,但原创 2017-09-02 18:03:09 · 322 阅读 · 0 评论 -
HashMap与Hashtable的区别
首先要明确的是:①Hashtable是一个古老的map实现类,但是由于那时候还没有map接口,因此它的方法相比map接口老的繁琐,具有elements和keys两个方法,对应map接口的values和keys;而HashMap实现了Map接口。其次,再来分析具体区别:②Hashtable作为早期集合类,考虑到了线程安全的问题,但也因此效率较低; HashMap适用原创 2017-09-03 10:05:07 · 255 阅读 · 0 评论