ios多線程中 同步、非同步與隊列之間的關係

來源:互聯網
上載者:User

標籤:

同步和非同步

非同步: 指的就是多線程, 把`對應的代碼`放到其他線程中去執行, 當前線程的代碼就繼續往下執行,不需要等到剛才放到子線程中的代碼執行完畢.

 

同步執行函數: 這個實際的應用情境不多 , 瞭解即可

            登入,註冊 需要放到一個隊列中去執行

            下載檔案 需要放到另外一個隊列去執行

 

非同步執行函數:

    串列隊列特點: 如果要開啟線程,只會開啟一條線程

                (同步函數執行時, 如果隊列是串列隊列,不需要開啟線程, 任務在當前線程中執行)

                (非同步函數執行時, 如果隊列是串列隊列,可以開啟線程,並且只能開啟一條線程)

 

    並發隊列特點: 可以開啟多條線程,  iOS8以前開啟線程的數量是有限制的. 以後就可以開很多線程.

                (同步函數執行時, 如果隊列是並發隊列,不需要開啟線程,任務在當前線程中執行)

                (非同步函數執行時, 如果隊列是並發隊列,可以開啟線程,並且可以開啟多條線程)

 

執行函數和隊列進行組合使用時: ***開不開啟線程和隊列沒有關係,只由執行函數決定.

                          ***開幾條線程由隊列決定,和執行函數沒有關係 (串列,一條-----並發,多條).

 

    全域隊列: 是系統給我們提供的一個並發隊列

 

 

    主隊列: 把任務放到主隊列中就表示要在主線程裡執行任務裡的代碼

 

----------------------- 

注意:

dispatch_after  這個函數不管隊列是什麼都是非同步執行任務

                如果執行隊列是主隊列, 這個執行函數不會開啟新的線程

 

ios多線程中 同步、非同步與隊列之間的關係

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.