1.線程安全與線程共享
允許被多個(gè)線程同時(shí)執(zhí)行的代碼稱為線程安全代碼宿刮。
局部變量:存儲(chǔ)在自己的棧中,永遠(yuǎn)不會(huì)被共享,所以是線程安全的
局部對(duì)象的引用:對(duì)象的局部引用和基礎(chǔ)類型的局部變量不太一樣。盡管引用本身沒有被共享整慎,但引用所指的對(duì)象并沒有存儲(chǔ)在線程的棧內(nèi)适荣。所有的對(duì)象都存在共享堆中。如果在某個(gè)方法中創(chuàng)建的對(duì)象不會(huì)逃逸出(譯者注:即該對(duì)象不會(huì)被其它方法獲得院领,也不會(huì)被非局部變量引用到)該方法,那么它就是線程安全的够吩。實(shí)際上比然,哪怕將這個(gè)對(duì)象作為參數(shù)傳給其它方法,只要?jiǎng)e的線程獲取不到這個(gè)對(duì)象周循,那它仍是線程安全的
對(duì)象成員:對(duì)象成員存儲(chǔ)在堆上强法。如果兩個(gè)線程同時(shí)更新同一個(gè)對(duì)象的同一個(gè)成員,那這個(gè)代碼就不是線程安全的湾笛。
線程安全:如果一個(gè)資源(對(duì)象饮怯,數(shù)組,文件嚎研,數(shù)據(jù)庫(kù)連接蓖墅,套接字等等)的創(chuàng)建,使用临扮,銷毀都在同一個(gè)線程內(nèi)完成论矾,
且永遠(yuǎn)不會(huì)脫離該線程的控制,則該資源的使用就是線程安全的杆勇。
2.