ios多執行緒中 同步 非同步與佇列之間的關係

2022-09-11 06:09:12 字數 689 閱讀 7097

同步和非同步

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

同步執行函式: 這個實際的應用場景不多 , 了解即可

登入,註冊 需要放到乙個佇列中去執行

非同步執行函式:

序列佇列特點: 如果要開啟執行緒,只會開啟一條執行緒

(同步函式執行時, 如果佇列是序列佇列,不需要開啟執行緒, 任務在當前執行緒中執行)

(非同步函式執行時, 如果佇列是序列佇列,可以開啟執行緒,並且只能開啟一條執行緒)

併發佇列特點: 可以開啟多條執行緒,  ios8以前開啟執行緒的數量是有限制的. 以後就可以開很多執行緒.

(同步函式執行時, 如果佇列是併發佇列,不需要開啟執行緒,任務在當前執行緒中執行)

(非同步函式執行時, 如果佇列是併發佇列,可以開啟執行緒,並且可以開啟多條執行緒)

執行函式和佇列進行組合使用時: ***開不開啟執行緒和佇列沒有關係,只由執行函式決定.

***開幾條執行緒由佇列決定,和執行函式沒有關係 (序列,一條-----併發,多條).

全域性佇列: 是系統給我們提供的乙個併發佇列

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

注意:dispatch_after  這個函式不管佇列是什麼都是非同步執行任務

如果執行佇列是主佇列, 這個執行函式不會開啟新的執行緒

同步 非同步 多執行緒

1 首先明確一點,對於單核cpu,任意乙個時刻只有乙個執行緒在執行。那麼既然這樣,多執行緒還有什麼意義呢?舉例來說,現在只有乙個人,要做好幾個任務。單執行緒就是,任務乙個乙個地做,必須做完乙個任務後,再去做另乙個任務。多執行緒就是一會做這個任務,一會做那個任務,每個任務做一會,不停的切換。顯然,最後...

同步 非同步 多執行緒

1 首先明確一點,對於單核cpu,任意乙個時刻只有乙個執行緒在執行。那麼既然這樣,多執行緒還有什麼意義呢?舉例來說,現在只有乙個人,要做好幾個任務。單執行緒就是,任務乙個乙個地做,必須做完乙個任務後,再去做另乙個任務。多執行緒就是一會做這個任務,一會做那個任務,每個任務做一會,不停的切換。顯然,最後...

多執行緒 執行緒同步 非同步

同步和非同步 同步和非同步通常用來形容一次方法的呼叫。同步方法呼叫一旦開始,呼叫者必須完成所有的操作一直到方法呼叫結束,其他呼叫者才能繼續後續的行為,非同步方法呼叫類似乙個訊息傳遞,一旦開始,方法呼叫就會立即返回,其他呼叫者則可以無需等待,可以立即繼續後續的操作。非同步 不過,如果 我們 趕時髦,就...