簡體   English   中英

iOS Objective-c同步

[英]iOS Objective-c synchronized

在Java中,如果我在一個方法中同步了關鍵字,那么無論哪個線程,它都將阻止多個線程同時執行:

public synchronized void doSomething() {
  //synchronous code here
}

在Objective-C中,如果這樣做,結果是否相同?

-(void)doSomething{
    @synchronized (self) {
       //synchonous code here
    }
}

是的,請注意。

@synchronized指令創建一個互斥鎖-防止大括號內的代碼同時由不同線程執行。 需要注意的是,它使用傳遞給它的對象作為唯一標識符來區分受保護的塊。 因此,如果您在兩種不同的方法中使用@synchronized(self) ,則會阻止這兩種方法同時由不同的線程執行(因為它們共享相同的標識符(在本例中為self ))。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM