什么是线程安全?为什么会性能高?

来源:2-5 认识 Java 中的 StringBuilder 类

chessqian

2014-11-27 16:20

如题。

写回答 关注

1回答

  • hasty
    2014-11-27 16:45:28

    1: 线程安全是指:多个线程同时操作数据对象(变量)时,结果和单个线程一样。例如:

    String a = "aaa";

    同时开两个线程操作a:

    线程1:
    b = a.append("bb");

    线程2:
    c = a.append("cc");
    线程安全的结果是:b = aaabb   c=aaabbcc;
    非线程安全的结果是: b= aaabb   c=aaacc;        


    2: 线程安全一般是以加锁为代价换取的,即:当一个线程操作时把对象锁住、等它操作完毕后再让其它线程操作(实际中有一些更好的实现,但大体原理如此)。而非线程安全就不需要考虑这种情况,所以性能会高一些。

    初级学习号

    你的对线程安全是不完善的,非线程安全的结果具有未知性。非线程安全的其中一种结果是: b= aaabb c=aaacc;其中一种结果也可能是b = aaabb c=aaabbcc;具体请参考http://www.imooc.com/view/202?src=sugc

    2015-06-18 20:32:07

    共 1 条回复 >

Java入门第三季

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

409792 学习 · 4340 问题

查看课程

相似问题