美文网首页
并发与高并发课程学习笔记(6)

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

作者: Ukuleler | 来源:发表于2018-04-29 20:11 被阅读0次

    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<vector.size();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)

          本文链接:https://www.haomeiwen.com/subject/urvllftx.html