我有一个循环,它以
[lock lock];因为在循环的主体中,我正在创建另一个线程,它需要在循环再次运行之前完成。(完成后,另一个线程将解锁)。
但是,在第二个循环中,我得到了以下错误:
2011-02-02 07:15:05.032 BLA[21915:a0f] *** -[NSLock lock]: deadlock (<NSLock: 0x100401f30> '(null)')
2011-02-02 07:15:05.032 BLA[21915:a0f] *** Break on _NSLockError() to debug.“锁”文档声明如下:
摘要:试图获取锁,阻止线程的执行,直到锁被获取为止。(必填)
这让我觉得在锁被弄到手之前它会被堵住?
发布于 2011-02-01 21:51:35
听起来像是两个问题:
NSCondition。在父线程中等待NSCondition,并在子线程中发出信号。NSLock在已经锁定时不能被锁定。这就是NSRecursiveLock的目的。发布于 2011-02-01 21:54:39
当你完成任务时,你记得发送-unlock吗?对-lock的每个调用都必须与对-unlock的调用配对。
https://stackoverflow.com/questions/4868160
复制相似问题