gpt4 book ai didi

objective-c - 有没有办法检查是否获得了 NSLock?

转载 作者:搜寻专家 更新时间:2023-10-30 19:51:33 25 4
gpt4 key购买 nike

我正在处理多线程代码。数据访问通过“NSLock”对象锁定在多个部分。我想确保在这些部分中调用的某些方法会检查是否获得了适当的锁。

类似于:

assert([myLock isSet] == YES);

我在 NSLock 中找不到类似“isSet”的东西。有什么想法可以确保设置锁吗?

谢谢!

最佳答案

你是如何获得锁的?如果你正在调用 lock,那么你甚至在之后运行的事实应该保证你已经获得了它。如果您调用 lockBeforeDate,返回值会告诉您。

如果你想从别处测试,你可以这样做

if ( [myLock tryLock] )
{
// oops, lock was not previously acquired!
...
[myLock unlock];
}
else
{
// yep, lock was already acquired
}

但是,总的来说,这似乎是一件值得怀疑的事情。您应该在需要的地方进行锁定并相信它会正常工作,而不是试图从外部对其进行监督。

关于objective-c - 有没有办法检查是否获得了 NSLock?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3556422/

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