2013-02-27 61 views

回答

2

不,它不需要是volatile。然而,TaskLock()必須施加某種內存屏障以確保按照該順序執行操作,即第一次鎖定,然後加載initCount。很可能你的鎖定原語已經這樣做了。


Volatile: Almost Useless for Multi-Threaded Programming

+0

也許初始化變量應該是?這會被優化嗎? – 2013-02-27 04:38:59

+1

@JoshPetitt也許如果它從信號處理程序修改: - ?但不知道。如果僅僅是從另一個線程修改'volatile'就不需要,同時還不夠。 – cnicutar 2013-02-27 04:40:08