线程不安全的HashMap 因为多线程环境下,使用HashMap进行put操作会引起死循环,导致CPU利用率接近100%,所以在并发情况下不能使用HashMap,如以下代码 效率低下的HashTable容器 HashTable容器使用synchronized来保证线程安全,但在线程竞争激烈的情况下H ...
分类:
其他好文 时间:
2017-07-07 23:32:52
阅读次数:
225
ThreadLocal翻译成中文比较准确的叫法应该是:线程局部变量。 这个玩意有什么用处,或者说为什么要有这么一个东东?先解释一下,在并发编程的时候,成员变量如果不做任何处理其实是线程不安全的,各个线程都在操作同一个变量,显然是不行的,并且我们也知道volatile这个关键字也是不能保证线程安全的。 ...
分类:
其他好文 时间:
2017-07-07 10:27:40
阅读次数:
347
第一种(懒汉,线程不安全): 这种写法lazy loading很明显,但是致命的是在多线程不能正常工作。 第二种(懒汉,线程安全): 这种写法能够在多线程中很好的工作,而且看起来它也具备很好的lazy loading,但是,遗憾的是,效率很低,99%情况下不需要同步。 第三种(饿汉): 这种方式基于 ...
分类:
其他好文 时间:
2017-07-06 13:23:56
阅读次数:
132
抛开工作经验,项目经验,学历背景,单从技术点分析,哪些方面可以判断一个java程序员的技术扎实程度,怎样才能知道他值多少月薪呢?本文将为你解答: 本着理论结合实践的方法,我一般都不问上面这种纯知识和理论性问题,而是让他写一段程序来证明HashMap是线程不安全的。然后,再让改一下这个程序,使之线程安 ...
分类:
编程语言 时间:
2017-07-03 12:23:32
阅读次数:
162
collection(单列集合) List(有序,可重复) ArrayList 底层数据结构是数组,查询快,增删慢,线程不安全,效率高 Vector 底层数据结构是数组,查询快,增删慢,线程安全,效率低 LinkedList 底层数据结构是链表,查询慢,增删快,线程不安全,效率高 Set(无序,唯一 ...
分类:
编程语言 时间:
2017-06-26 23:59:13
阅读次数:
336
//没有sycronized修饰method,是线程不安全的,--StringBuffer来弥补这个缺点,但速度就慢了 并没有测试出来:: 1 /** 2 * 3 */ 4 package com.breaver.test.string; 5 6 /** 7 * @author zzf 8 *@da ...
分类:
编程语言 时间:
2017-06-23 00:46:14
阅读次数:
111
近期看到到Struts1与Struts2的比較。说Struts1的控制器是单例的,线程不安全的;Struts2的多例的,不存在线程不安全的问题。之后又想到了之前自己用过的HttpHandler。。。这些类。好像单例的线程安全问题确实是随处可见的。可是仅仅是知道这个是不安全的,也没有认真分析过。接下来 ...
分类:
编程语言 时间:
2017-06-22 10:15:22
阅读次数:
272
两者的区别主要集中以下几个方面: 1.key是否允许为空 HashMap允许key为null,Hashtable不允许key为null。 2.value是否允许为空 HashMap允许value为空,Hashtbale不允许value为null。 3.线程是否安全 HashMap线程不安全,Hash ...
分类:
其他好文 时间:
2017-06-21 18:25:56
阅读次数:
159
第一种(懒汉,线程不安全): Java代码 public class Singleton { private static Singleton instance; private Singleton (){} public static Singleton getInstance() { if (i ...
分类:
其他好文 时间:
2017-06-17 10:21:00
阅读次数:
162
定义:确保一个类只有一个实例,并提供一个全局访问点。 一、线程不安全的 1、饱汉式,只有在被第一次调用的时候才创建实例。 package com.singleton; public class Singleton { // 利用静态变量创建唯一实例 private static Singleton ...
分类:
其他好文 时间:
2017-06-10 13:48:34
阅读次数:
201