- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果我实例化一个 NSOperationQueue( list 1):
NSOperationQueue * operationQueue = [[NSOperationQueue alloc] init];
然后向其添加一个操作( list 2):
NSInvocationOperation* anOperation = [[NSInvocationOperation alloc] initWithInvocation:theInvocation];
[operationQueue addOperation:anOperation ];
我知道 anOperation 将在新的 NSOperationQueue 上的新线程上运行。与之通信的一种机制是调用performSelector:onThread:withObject:waitUntilDone:
但这是队列和线程上的 NSOperation,而不是主线程。那么 NSOperationQueue 对象呢?作为 alloc/init 的一部分,它是否会移动到创建它的线程以外的线程?换句话说,如果 NSOperationQueue alloc/init 代码( list 1)在主队列和主线程上执行,我可以使用 PerformSelectorOnMainThread:withObject:waitUntilDone: 还是必须使用 PerformSelector:onThread:withObject:waitUntilDone: ?
我无法找到任何关于此的信息,或者确切地说 NSOperationQueue init 做了什么,这就是为什么我正在考虑编写代码来记录创建/使用的各种队列和线程。
最佳答案
没有与 NSOperationQueue
关联的特定线程。 NSOperationQueue 的代码在调用它的任何线程上运行。
对象本身是线程安全的,可以从任何线程访问或操作。来自 NSOperationQueue
class reference :
Multicore Considerations
It is safe to use a single
NSOperationQueue
object from multiple threads without creating additional locks to synchronize access to that object.
关于objective-c - NSOperationQueue 的线程是父线程还是新线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32703006/
我是一名优秀的程序员,十分优秀!