線程安全與不安全問題
1: 線程安全是指:多個(gè)線程同時(shí)操作數(shù)據(jù)對(duì)象(變量)時(shí),結(jié)果和單個(gè)線程一樣。例如:
String a?=?"aaa";
同時(shí)開兩個(gè)線程操作a:
線程1:
b?=?a.append("bb");
線程2:
c?=?a.append("cc");
線程安全的結(jié)果是:b?= aaabb ? c=aaabbcc;
非線程安全的結(jié)果是: b= aaabb ? c=aaacc; ? ? ? ?
也可能是b?= aaabb ? c=aaabbcc;
2: 線程安全一般是以加鎖為代價(jià)換取的,即:當(dāng)一個(gè)線程操作時(shí)把對(duì)象鎖住、等它操作完畢后再讓其它線程操作(實(shí)際中有一些更好的實(shí)現(xiàn),但大體原理如此)。而非線程安全就不需要考慮這種情況,所以性能會(huì)高一些。
2015-12-14
不懂java代碼