gpt4 book ai didi

cocoa - NSLock - 在锁定锁定的锁时应该阻塞吗?

转载 作者:行者123 更新时间:2023-12-03 16:06:19 24 4
gpt4 key购买 nike

我有一个以 a 开头的循环

[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.

“锁定”文档说明如下:

Abstract: Attempts to acquire a lock, blocking a thread’s execution until the lock can be acquired. (required)

这让我认为它会阻塞直到获得锁为止?

最佳答案

听起来像两个问题:

  • 不支持在一个线程上锁定锁并在另一个线程上解锁 - 您可能需要 NSCondition。在父线程中等待 NSCondition,并在子线程中向其发出信号。
  • 普通的NSLock在已经锁定的情况下无法被锁定。这就是 NSRecursiveLock 的用途。

关于cocoa - NSLock - 在锁定锁定的锁时应该阻塞吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4868160/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com