0
從一個線程鎖定一個函數,阻止嘗試獲取不同函數的鎖的所有其他線程。@synchronized(self)block在多線程環境中的多個資源的多個位置,目標c
我們可以使用gcd來訪問下面提到的關鍵部分,只是想知道@synchronized(self)是如何工作的。 例如。
執行writeString()中的@synchronized(self){}時,執行多個只有writeString()調用的線程會被阻塞嗎?當在writeString()中執行@synchronized(self){}時,所有調用與@synchronized(self){}(例如readDataFromFile())相同類的函數的線程都會被阻塞?
-(void)writeString:(NSString*)string forObj:(id)obj
{
@synchronized(self)
{
[obj write:string];
}
}
-(void)readDataFromFile:(NSString*)file
{
@synchronized(self)
{
[self read];
}
}
歡迎來到Stackoverflow!您不需要在問題主體中複製標題。 – kelin
你需要顯示你的代碼。同樣的「自我」還是不同的「自我」? – bbum
@shweta同一個班級是無關緊要的。它是相同的*實例*? – bbum