線程安全與不安全問題
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: 線程安全一般是以加鎖為代價換取的,即:當一個線程操作時把對象鎖住、等它操作完畢后再讓其它線程操作(實際中有一些更好的實現,但大體原理如此)。而非線程安全就不需要考慮這種情況,所以性能會高一些。
2015-12-14
不懂java代碼