【问题标题】:How to find the state of threads in iOS?如何在 iOS 中找到线程的状态?
【发布时间】:2012-11-24 04:05:37
【问题描述】:
我已经实现了一些线程函数(我使用了NSInvocaionOperation),它们在不干扰 UI 响应的情况下执行一些后台进程。一切正常,我在操作队列中添加的所有选择器都被调用了。 (我通过将 NSLog 放在所有选择器方法中来这么说)。
我想知道更多细节来检查/检查每个线程的状态。
也就是说,
- 我可以测量选择器完成所用的时间吗?
- 我可以知道特定线程的当前状态吗?
如果您添加更多关于线程优化的点,将会非常有帮助。
提前致谢。
【问题讨论】:
标签:
ios
multithreading
time
state
performance
【解决方案2】:
目前在 iOS 上进行线程优化的最佳方法是忘记显式线程管理,而改用 Grand Central Dispatch。这并不适用于所有情况,但如果你只是在编写时在后台调用一些选择器,显式线程显然是矫枉过正的。
这是使用 GCD 将选择器旋转到背景的方式:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
[self doSomeLongerTask]; // runs in a background thread
dispatch_async(dispatch_get_main_queue(), ^{
[self reportOperationDone]; // runs on the UI thread
});
});