【发布时间】:2015-11-18 15:47:13
【问题描述】:
我想继承 NSOperation 以使其并发,根据 Apple 文档,我必须重写以下方法来实现并发操作:
- 开始
- 正在执行中
- 已完成
- 是异步的
但是根据我的测试结果,我可以让 NSOperation 对象在第二个线程中运行,而无需实现“isExecuting”、“isFinished”和“isAsynchronous”方法。我只是编写代码。
[NSThread detachNewThreadSelector:@selector(main) toTarget:self withObject:nil];
在启动方法中,然后在我执行的主线程中
[myOperation start]
然后操作可以在一秒钟内执行第二个线程而不是主线程。谁能解释一下这个问题
【问题讨论】:
-
使用
NSOperationQueue运行您的NSOperation。将队列设置为并发(或串行)。 -
NSOperationQueue 总是并发执行操作,同时考虑依赖关系。不能是串行模式
-
@Coinmigh 如果您将最大并发设置为 1,它可以是串行的。
-
@rmaddy,是的,你是对的。通过再次阅读苹果文档,我理解了我提出的问题,谢谢。
标签: ios concurrency nsoperation