问答详情
源自:2-5 认识 Java 中的 StringBuilder 类

线程安全与不安全问题

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


提问者:樱桃小wa子 2015-06-25 23:00

个回答

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

    不懂java代码