91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Dispatch Queues

發布時間:2020-04-09 07:01:46 來源:網絡 閱讀:488 作者:huahanjie 欄目:開發技術

GCD(Grand Central Dispatch)的 dispatch queues 是一個實現多任務的很好的工具。Dispatch queues 讓你能夠方便的使用blocks,不管你想要去調用同步或異步。你可以實現幾乎所有的以前你通過separate 的threads完成的任務。相對thread的code 而言,dispatch queues的優點是更簡單和更有效率。

這章節提供了dispatch queues的詳細介紹,所有關于怎么樣使用他們去執行普通任務的信息。


一、關于Dispatch Queues

   Dispatch Queues 是一個簡單實現實現異步和并發任務的方法。A dispatch queue is an object-like structures that manages the tasks you submit to it.所有的dispatch queue都是先進先出的數據結構

   Serial queues:每次只執行一個任務,并且先進先出。如果想通過這個實現并發可以創建多個serial queue 。但是如果希望實現許多并發則建議使用并發queues。

           dispatch_queue_t queue;

           queue =  dispatch_queue_create("com.example.MyQueue",NULL);



  Concurrent  Queue :(global dispatch queue) 并發,但是仍然按加進隊列的順序啟動。并發執行的任務在確定的線程中(被并發隊列管理著的)。具體的執行的線程數由系統決定,是動態的。In IOS5 and later ,我們能夠自己創建并發隊列通過設定為DISPATCH_QUEUE_CONCURRENT 的類型

          系統提供了4個并發隊列 是全局的,他們只是優先等級不同。因為是全局的,我們不在需要創建了。通過dispatch_get_global_queue

          dispatch_queue_t aQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0)

DISPATCH_QUEUE_PRIORITY_HIGH 和DISPATCH_QUEUE_PRIORITY_LOW ,DISPATCH_QUEUE_PRIORITY_BACKGROUND

        note:第二個參數以后在解釋,現在我們只要傳0得參數就行了。

         



Main dispatch queue :主隊列是一個全局可獲取在應用主線程中執行任務的的竄行隊列。 通過run loop 將我們要執行的任務加進主線程。如果不是cocoa的應用,也不想特別的創建run loop ,你必須通過dispatch_main方法

    dispatch_get_main_queue.


二,獲取運動時的隊列

你可以通過dispatch_get_current_queue獲取運行時的隊列: 

1. 

dispatch_queue_t currentQueue = dispatch_get_current_queue();  

如果在隊列執行任務中調用,返回執行此任務的隊列;如果在主線程中調用,將返回主隊列;如果在一般線程(非主線程線程非隊列執行任務)中調用,返回DISPATCH_QUEUE_PRIORITY_DEFAULT全局隊列。

三、在隊列中運行任務

異步

dispatch_async(aQueue,^{

    //do somethings

});

同步

dispatch_sync(aQueue,^{

});

四、Dispatch Queue的內存管理

除了系統定義的Dispatch Queue,我們自定義的Dispatch Queue需要手動的管理它的內存。

dispatch_retain dispatch_release


          

    

              

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

长泰县| 隆昌县| 施秉县| 奉贤区| 东莞市| 河西区| 峨山| 天祝| 铁力市| 桂平市| 仙居县| 霞浦县| 鹿泉市| 孝昌县| 通辽市| 揭东县| 正蓝旗| 禹城市| 墨玉县| 新沂市| 株洲市| 丹棱县| 高清| 邵武市| 安岳县| 吉木萨尔县| 铜山县| 济源市| 清涧县| 边坝县| 西和县| 三台县| 平罗县| 嘉黎县| 镇远县| 揭东县| 团风县| 建瓯市| 平泉县| 景洪市| 云梦县|