GCD的补充
1-1 關于GCD中的創建和釋放 在iOS6.0之前,在GCD中每當使用帶creat單詞的函數創建對象之后,都應該對其進行一次release操作。 ? 在iOS6.0之后,GCD被納入到了ARC的內存管理機制中,在使用GCD的時候我們就像對待普通OC對象一樣對待GCD,因此不再需要我們調用release方法。 1-2 GCD中設置隊列的優先級 01 使用create函數創建出來的隊列不論是串行隊列還是并發隊列,其執行任務線程的優先級都是默認優先級。 02 可以通過set_target_queue來變更隊列的優先級。第一個參數傳通過creat創建出來的隊列,后面一個參數傳指定了優先級的全局并發隊列。第一個參數如果傳主隊列或者全局并發隊列的話,那么執行結果是未知的。 1-3 暫停和恢復。 GCD中的隊列也是可以暫停和恢復的,直接把相應的隊列作為參數做傳遞就可以。使用 dispatch_resume(queue1)[啟動queue1];和dispatch_suspend(queue1);[暫停queue1] 1-4 GCD中可以不使用block而使用函數。 1-5 在NSOperation中關于main方法的調用問題。 先調用start方法,在start方法內部會調用main方法。可以通過代碼來進行驗證。 參考資料: https://developer.apple.com/library/ios/documentation/Performance/Reference/GCD_libdispatch_Ref/index.html#//apple_ref/c/func/dispatch_queue_create 封裝任務:?
?
??
?
?
?
?
轉載于:https://www.cnblogs.com/HMJ-29/p/4943882.html
總結
- 上一篇: py文件控制台执行时,报错:引入的模块不
- 下一篇: 国内大公司的开源项目( 阿里 腾讯 百度