我想知道c/cocoa中的块是否在单独的线程上运行到主线程。它们对于执行计算代价很高的代码有用吗,而让UI响应?块和线程
Q
块和线程
4
A
回答
13
块只是代码捆绑到一个可调用对象中的片段。他们如何运行完全取决于调用它的代码。
在单独的线程上运行块不仅是可能的,而且正是块概念引入的原因。它支持Grand Central Dispatch,它在面向任务的模型背后隐藏了许多并发编程的复杂性。
1
他们不必在另一个线程上运行,但他们可以。您可以将它们安排在NSOperationQueues或GCD队列中,这些队列可以通过后台线程进行排序。
是的,这可以是一个有用的构造,以帮助您从主线程中获得耗时的工作。但这不是所有块都有用的,相反,您可以使用或不使用块进行后台处理。
1
您可以使用GCD安排在其他线程上发布的块。这两个是一起介绍的,所以任何关于这个的讨论通常都会提到另一个。然而,块本身并不是一个多线程机制。
相关问题
- 1. cuda线程和块
- 2. 线程和块的限制以及线程和块的执行
- 3. 线程和块概念
- 4. 静态块和主线程
- 5. 块和ViewController线程安全
- 6. 块,线程安全和NSMutableDictionary
- 7. 多线程和静态块
- 8. Java线程和同步块
- 9. 线程块
- 10. 块,线程,warpSize
- 11. UI线程块
- 12. SslStream.ReadByte()块线程?
- 13. pthread_cond_signal块线程
- 14. 线程块ContentObserver
- 15. 使用线程和队列模块的Python中的多线程
- 16. 使用QThread和线程模块进行Python多线程处理
- 17. 线程,块,CGImageRef和范围问题
- 18. cuda大矩阵和块/线程
- 19. CUDA线程和块级别同步
- 20. 块和唤醒消费者线程/
- 21. 共享内存组织线程和块
- 22. WebClient DownloadFileAsync()块线程
- 23. JsonConvert.DeserializeObject块UI线程
- 24. 块当前线程
- 25. awaitTermination块主线程
- 26. RxAndroid块UI线程
- 27. Python线程模块
- 28. webViewDidFinishLoad块主线程
- 29. performSelector:withObject:afterDelay块UI线程
- 30. UIImageWriteToSavedPhotosAlbum块主线程
那么,关于C还是Objective-C呢? – 2010-12-02 12:09:34
我认为这取决于你如何调用该块... – 2010-12-02 12:12:43
@Let_Me_Be有趣的问题......从技术上讲,它们是在C级实现的,但我只见过它们用于Objective-C。 – 2010-12-02 12:15:51