我想知道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