测试可变字符序列 stringBuilder(线程不安全,效率高,一般用),stringBuffer(线程安全,效率低)stringBuilder,stringBuffer和string的区别前者可变,后者不可变,因为后者类中用的是final,定死了 StringBuilder中的常用方法; ...
分类:
其他好文 时间:
2018-03-16 23:45:29
阅读次数:
203
1、饿汉式:静态常量 特点:单例的实例被声明成static和final变量了,在第一次加载类到内存中时就会初始化,所以会创建实例本身是线程安全的 2、懒汉式:线程不安全 特点:使用了懒加载模式,但是却存在致命的问题。当多个线程并行调用getInstance()的时候,就会创建多个实例,即在多线程下不 ...
分类:
其他好文 时间:
2018-03-14 15:04:05
阅读次数:
176
Collection 接口 用父类引用指向子类对象 List(存取有序,有索引,可以重复) ArrayList底层是数组实现的,线程不安全,查找和修改快,增和删比较慢 LinkedList底层是链表实现的,线程不安全,增和删比较快,查找和修改比较慢 Vector底层是数组实现的,线程安全的,无论增删 ...
分类:
其他好文 时间:
2018-03-09 01:42:20
阅读次数:
156
String是字符串常量;StringBuffer,StringBuilder是字符串变量 StringBuffer是线程安全的且效率低;StringBuilder是线程不安全的故效率高 操作少量字符串,使用String;单线程下操作大量字符串,使用StringBuilder;多线程下操作大量字符串 ...
分类:
其他好文 时间:
2018-03-08 15:55:02
阅读次数:
119
最近看到《侦探剧场:堆内存神秘溢出事件》https://my.oschina.net/u/2368090/blog/1628720,于是自己也想测试了解一下DateFormat的多线程安全问题。 首先先看现象:做一个多线程使用同一个SimplyDateFormat的测试例子: (这段代码在虚拟机能很 ...
分类:
编程语言 时间:
2018-03-08 02:48:58
阅读次数:
132
单例模式的实现方式:单例模式要求程序中类只有一个对象。所以我们要将他的构造函数设为private,并提供一个生成对象的静态方法。第一种实现方式: 由于第一种方式是线程不安全的。因为当在if(instace==null)这句话中出现了中断,期间,又有另一个进程B进入,创建了一个实例,而线程A重新获取处理器,又创建了该类的另一个实例。第二种实现方式 这里直接在内部就生成
分类:
其他好文 时间:
2018-03-04 14:33:55
阅读次数:
101
本文基于jdk1.8.0_66写成 0. ThreadLocal简介 ThreadLocal可以提供线程内的局部对象,合理的使用可以避免线程冲突的问题比方说SimpleDateFormat是线程不安全的,但是如果用ThreadLocal给每个线程分配一个SimpleDateFormat对象,我们就可 ...
分类:
其他好文 时间:
2018-03-01 13:30:01
阅读次数:
109
线程不安全的HashMap, HashMap在并发执行put操作时会引起死循环,是因为多线程会导致HashMap的Entry链表形成环形数据结构,查找时会陷入死循环。 https://www.cnblogs.com/dongguacai/p/5599100.html https://coolshel ...
分类:
其他好文 时间:
2018-02-22 22:34:34
阅读次数:
212
Java内存模型与多线程: 线程不安全与线程安全: 线程安全问题阐述: 多条语句操作多个线程共享的资源时,一个线程只执行了部分语句,还没执行完,另一个线程又进来操作共享数据(执行语句),导致共享数据最终结果出现误差;所以就是看一个线程能否每次在没有其他线程进入的情况下操作完包含共享资源的语句块,如果 ...
分类:
编程语言 时间:
2018-02-22 17:33:09
阅读次数:
221
Servlet是线程不安全的,Struts1是基于Servlet的框架 而Struts2是基于Filter的框架,解决了线程安全问题 因此Struts1和Struts2基本没有关系,只是创造者取名问题 接下来搭建并测试 下载Struts2:https://struts.apache.org/ 解压后 ...
分类:
其他好文 时间:
2018-02-20 22:27:00
阅读次数:
216