3 回答

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超4個(gè)贊
this
this
List<int>

TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超5個(gè)贊
通常,最好避免鎖定公共類型或應(yīng)用程序無(wú)法控制的對(duì)象實(shí)例。例如,如果可以公開訪問實(shí)例,鎖(這個(gè))可能會(huì)有問題,因?yàn)槌瞿刂品秶拇a也可能鎖定對(duì)象。 這可能會(huì)造成死鎖情況,其中兩個(gè)或多個(gè)線程等待同一個(gè)對(duì)象的釋放。..鎖定公共數(shù)據(jù)類型(而不是對(duì)象)可能會(huì)因?yàn)橥瑯拥脑蚨鴮?dǎo)致問題。鎖定文字字符串是特別危險(xiǎn)的,因?yàn)槲淖肿址怯晒舱Z(yǔ)言運(yùn)行庫(kù)(CLR)內(nèi)嵌的。這意味著對(duì)于整個(gè)程序,任何給定的字符串文本都有一個(gè)實(shí)例,在所有線程上,在所有運(yùn)行的應(yīng)用程序域中,完全相同的對(duì)象表示文本。因此,在應(yīng)用程序進(jìn)程中的任何位置放置具有相同內(nèi)容的字符串的鎖都會(huì)鎖定應(yīng)用程序中該字符串的所有實(shí)例。因此,最好鎖定未被拘留的私有或受保護(hù)成員。有些類提供專門用于鎖定的成員。例如,Array類型提供Syncroot。許多集合類型也提供Syncroot成員。
- 3 回答
- 0 關(guān)注
- 538 瀏覽
添加回答
舉報(bào)