課程
/后端開發
/Java
/Java入門第三季
如題。
2014-11-27
源自:Java入門第三季 2-5
正在回答
1: 線程安全是指:多個線程同時操作數據對象(變量)時,結果和單個線程一樣。例如:
String a?=?"aaa";
同時開兩個線程操作a:
線程1:b?=?a.append("bb");
線程2:c?=?a.append("cc");線程安全的結果是:b?= aaabb ? c=aaabbcc;非線程安全的結果是: b= aaabb ? c=aaacc; ? ? ? ?
2: 線程安全一般是以加鎖為代價換取的,即:當一個線程操作時把對象鎖住、等它操作完畢后再讓其它線程操作(實際中有一些更好的實現,但大體原理如此)。而非線程安全就不需要考慮這種情況,所以性能會高一些。
初級學習號
舉報
Java中你必須懂得常用技能,不容錯過的精彩,快來加入吧
2 回答為什么Stringbuffer 是線程安全的?
2 回答線程安全與不安全問題
1 回答Integer為什么會劃線
1 回答為什么不講線程
1 回答為什么會程序運行錯誤
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2014-11-27
1: 線程安全是指:多個線程同時操作數據對象(變量)時,結果和單個線程一樣。例如:
String a?=?"aaa";
同時開兩個線程操作a:
線程1:
b?=?a.append("bb");
線程2:
c?=?a.append("cc");
線程安全的結果是:b?= aaabb ? c=aaabbcc;
非線程安全的結果是: b= aaabb ? c=aaacc; ? ? ? ?
2: 線程安全一般是以加鎖為代價換取的,即:當一個線程操作時把對象鎖住、等它操作完畢后再讓其它線程操作(實際中有一些更好的實現,但大體原理如此)。而非線程安全就不需要考慮這種情況,所以性能會高一些。