并发与高并发课程学习笔记(6)

1.StringBuilder->StringBuffer

StringBuilder线程不安全,StringBuffer线程安全

但是后者引入同步锁导致性能没有前者高,所以在堆栈封闭的情况下推荐用StringBuilder

2.SimpleDateFormate->JodaTime

SimpleDateFormate

线程不安全,因此想要在多线程环境下使用需要满足线程封闭原则, 因此SimpleDateFOrmate需要每次都新建一个实例

SimpleDateFormatsimpleDateFormat =new SimpleDateFormat("yyyy:MM:dd");

JodaTime

DateTimeFormattersimpleDateFormat = DateTimeFormat.forPattern("yyyyMMdd");

---------------------------------------------------------------------------------------------------------------------------

同步容器(同步容器性能并不高,而且不能做到完全的线程安全,因此推荐使用并发容器)

1.ArrayList -> Vector,Stack

Vectorlist =new Vector<>(); //使用Vector如果只是添加,查看那么能够保证线程安全,但是如果有删除操作,则可能会报错

for(Integer i: vector){

if (i.equals(3)) {

vector.remove(i);

}

}

Iterator iterator = vector.iterator();

while(iterator.hasNext()){

Integer i = iterator.next();

if(i.equals(3)){

vector.remove(i);

}

}

for(int i=0;i

if(vector.get(i).equals(3)){

vector.remove(i);

}

}

foreach和iterator在遍历过程中有删除操作,均会报错,因此推荐使用for循环

2.HashMap -> HashTable(key,value不能为null)

3.Collections.synchronizedXXX(List, Set, Map)

你可能感兴趣的:(并发与高并发课程学习笔记(6))