在这段代码中,根据我的阅读结果,解锁并不能确保线程
以他们被锁定的相同顺序被解锁。这句话对吗?
什么是最好的同步方案,以确保线程被解锁
他们以相同的顺序被锁定?

- (void)insert:(id)number
{
    [_lock lock];
    [_numbers insertObject:number];
    [_lock unlock];
}

- (void)insert
{
    @synchronized (self) {
        [_numbers insertObject:number];
    }
}

最佳答案

确保线程以锁定顺序解锁的最佳同步方案是什么?


最好的同步方案是首先不要使用锁。请改用Grand Central Dispatch。串行队列可以连贯而简单地完成锁的工作,并且犯错的机会要少得多。

关于objective-c - 如何确保线程正确解锁,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58469748/

10-16 10:22