线程安全与不安全问题

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

樱桃小wa子

2015-06-25 23:00

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

String a = "aaa";

同时开两个线程操作a:

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

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

也可能是b = aaabb   c=aaabbcc;

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


写回答 关注

1回答

  • auto_ding
    2015-12-14 18:13:17

    不懂java代码

Java入门第三季

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

409792 学习 · 4340 问题

查看课程

相似问题