【发布时间】:2012-05-22 16:52:59
【问题描述】:
我真的想不出来
我能想到的一件事是
@synchronized (self)
{
@synchronized (self){}
}
但这不会死锁,因为锁是递归的,只会允许同一个线程通过。所以如果整个程序只使用一个变量,基本上你就不会死锁
我能想到的另一个是
@synchronized (A)
{
@synchronized (B){}
}
在一个线程中
@synchronized (B)
{
@synchronized (A){}
}
在另一个。我说的对吗?
那么如何避免死锁呢?有什么简单的规则吗?
【问题讨论】:
标签: objective-c multithreading xcode4.3 grand-central-dispatch synchronized