iOS同步異步和隊列的通俗理解

dispatch_sync先上兩個概念:

一、隊列:(只是提供是否可以開啟多線程的環(huán)境條件)

1改艇、串行隊列
2兰粉、并行隊列
3、主隊列(每個應用對應唯一一個主隊列)
4恋昼、全局隊列(系統(tǒng)的并行隊列)

二看靠、任務:(真正決定要不要開啟多線程)

1、同步執(zhí)行(不可開新線程)
2液肌、異步執(zhí)行(可以開新線程)

以售票廳售票排隊的事情為例

如果有一個三個窗口的售票廳挟炬,窗口相當于隊列,同時開放相當于并行隊列嗦哆,也就是可以支持同時三個窗口售票镀赌,只開放一個窗口相當于串行隊列

      1號窗口               2號窗口           3號窗口
    旅游團A(A1,A2,A3)
    旅游團B(B1,B2)
    旅游團C(C1,C2,C3)

同步執(zhí)行的時候贤惯,各個旅游團不可以分散排隊邻薯,只能排到某一個窗口下進行依次買票畏腕,各個旅游團的人也要按照順序進行買票,也就是A1--A2--A3---B1----B2----C1---C2---C3
異步執(zhí)行的時候,各個旅游團可以分散排隊橘券,但是旅游團內(nèi)部仍需要按照順序進行買额湘,也就是可以旅游團A排1,旅游團B排3旁舰,旅游團C排2锋华,三個窗口同時開啟售票,此時鬓梅,旅游團A的三個人肯定是一個線程供置,團B兩個人是一個線程,旅游團C三個人是一個線程绽快,所以打印出來的順序可能是A1 B1 C1 A2 C2 B2 A3 C3芥丧,但是中注意各旅游團內(nèi)部是按照順序執(zhí)行的

三、下面來分幾種情況:

1坊罢、并行隊列+同步執(zhí)行
解析:

并行隊列--->開了三個窗口
同步執(zhí)行----->只能三個旅游團排到一個窗口下面依次買票续担,所以一切需要按照順序買票,各團內(nèi)部也是按照順序買票

2活孩、并行隊列+異步執(zhí)行
解析:

并行隊列--->開了三個窗口
異步執(zhí)行--->可以以旅游團為單位物遇,進行分散買票,但各旅游團內(nèi)部需要按照順序買票

3、串行隊列+同步執(zhí)行
解析:

串行隊列--->只開了一個窗口
同步執(zhí)行---->只能三個旅游團排到一個窗口下面依次買票询兴,所以一切需要按照順序買票乃沙,各團內(nèi)部也是按照順序買票

4、串行隊列+異步執(zhí)行
解析:

串行隊列--->只開了一個窗口
異步執(zhí)行---->可以以旅游團為單位诗舰,進行分散買票警儒,但很遺憾,只有一個窗口是開著的眶根,所以還是乖乖在這排著吧蜀铲,所以結果是按照順序一個一個買

5、主隊列+同步執(zhí)行
解析:

主隊列--->相當于串行隊列属百,只開了一個窗口
同步執(zhí)行---->只能三個旅游團排到一個窗口下面依次買票记劝,所以一切需要按照趙順序買票,此時要注意族扰,這里會產(chǎn)生死鎖厌丑,在下面會講

6、主隊列+異步執(zhí)行
解析:

主隊列--->相當于串行隊列别伏,只開了一個窗口
異步執(zhí)行---->可以以旅游團為單位蹄衷,進行分散買票忧额,但是很遺憾厘肮,只有一個窗口是開著的,所以還是乖乖在這排著吧睦番,所以結果是按照順序一個一個買

四类茂、死鎖的概念

先上一個代碼

-(void)syncMain {
       dispatch_sync(dispatch_get_main_queue(), ^{
             NSLog(@"同步里面的")
       })
}

隊列是采取先進先出的方式,在主隊列里托嚣,方法syncMain先被壓進了棧巩检,然后又壓了dispatch_sync這個方法,主隊列需要先把syncMain執(zhí)行完示启,才能執(zhí)行dispatch_sync里面的方法兢哭,但是 dispatch_sync是在syncMain方法里面同步執(zhí)行,syncMain方法需要等待dispatch_sync這個方法執(zhí)行了才能往下進行夫嗓,可是dispatch_sync又需要等待syncMain方法執(zhí)行完他才能被隊列送出執(zhí)行迟螺,所以就造成了互相等待的死鎖狀態(tài)

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市舍咖,隨后出現(xiàn)的幾起案子矩父,更是在濱河造成了極大的恐慌,老刑警劉巖排霉,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件窍株,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機球订,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進店門后裸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人冒滩,你說我怎么就攤上這事轻抱。” “怎么了旦部?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵祈搜,是天一觀的道長。 經(jīng)常有香客問我士八,道長容燕,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任婚度,我火速辦了婚禮蘸秘,結果婚禮上,老公的妹妹穿的比我還像新娘蝗茁。我一直安慰自己醋虏,他們只是感情好,可當我...
    茶點故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布哮翘。 她就那樣靜靜地躺著颈嚼,像睡著了一般。 火紅的嫁衣襯著肌膚如雪饭寺。 梳的紋絲不亂的頭發(fā)上阻课,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天,我揣著相機與錄音艰匙,去河邊找鬼限煞。 笑死,一個胖子當著我的面吹牛员凝,可吹牛的內(nèi)容都是我干的署驻。 我是一名探鬼主播,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼健霹,長吁一口氣:“原來是場噩夢啊……” “哼旺上!你這毒婦竟也來了?” 一聲冷哼從身側響起骤公,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤抚官,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后阶捆,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體凌节,經(jīng)...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡钦听,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了倍奢。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片朴上。...
    茶點故事閱讀 40,013評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖卒煞,靈堂內(nèi)的尸體忽然破棺而出痪宰,到底是詐尸還是另有隱情,我是刑警寧澤畔裕,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布衣撬,位于F島的核電站,受9級特大地震影響扮饶,放射性物質發(fā)生泄漏具练。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一甜无、第九天 我趴在偏房一處隱蔽的房頂上張望扛点。 院中可真熱鬧,春花似錦岂丘、人聲如沸陵究。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽铜邮。三九已至,卻和暖如春翩概,著一層夾襖步出監(jiān)牢的瞬間牲距,已是汗流浹背返咱。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工钥庇, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人咖摹。 一個月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓评姨,卻偏偏與公主長得像,于是被迫代替她去往敵國和親萤晴。 傳聞我的和親對象是個殘疾皇子吐句,可洞房花燭夜當晚...
    茶點故事閱讀 44,960評論 2 355

推薦閱讀更多精彩內(nèi)容