gpt4 book ai didi

objective-c - NSOperation不产生新线程吗?

转载 作者:行者123 更新时间:2023-12-03 12:53:07 25 4
gpt4 key购买 nike

我有一个NSOperationQueue,其中包含许多NSOperation。我想确保代码的特定部分不会并行执行。我使用这样的NSLock对象:

[myLock lock]
some critical code
[myLock unlock]

不幸的是,我得到了以下错误,而不是阻止“锁定”调用:

-[NSLock锁定]:死锁('(null)')

经过一番调查,我注意到所有NSOperations似乎都在同一线程中运行。我在用以下命令记录线程ID后得出了该结论:
NSLog(@"Thread %@\n", self, [NSThread currentThread]);

所有操作似乎都在同一线程中运行。即使它们作为操作并行运行。

那有意义吗?我有点困惑。我想念什么吗?结合使用NSOperation和NSLock,您是否看到任何问题? (如果没有,那么我确定错误出在我的代码中)

最佳答案

我解决了我在下面使用ASIHTTPRequest。除非您重写“+(NSThread *)threadForRequest:(ASIHTTPRequest *)request”,否则显然所有HTTP调用都在同一线程中进行。

对不起。

关于objective-c - NSOperation不产生新线程吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4289027/

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