iT邦幫忙

2021 iThome 鐵人賽

DAY 28
0
Mobile Development

從零開始的Swift開發心路歷程系列 第 28

【從零開始的Swift開發心路歷程-Day28】認識GCD多執行緒Part1

GCD(Grand Central Dispatch)是由蘋果開發用來操作Thread的API
而在認識GCD之前,我們必須先認識幾個重要的名詞

SerialQueue與ConcurrentQueue

  • Serial(依序排列的)
    意思是這個Queue裡的工作必須按照順序執行,而且要等前一個工作執行完,下一個工作才能開始執行。
    舉個例來說,大家就學時應該都跑過大隊接力吧!而你必須等上一棒把接力棒傳給你之後才能開始衝刺,如果偷跑的話,那可就犯規囉~
  • Concurrent(同時發生的)
    相較於Serial,Concurrent的意思是這個Queue裡的工作必須按照順序「開始」執行,所以不用等到上一個工作執行完下一個工作才能執行,這樣大家可能有點混亂,所以我舉個例來說明!
    假設一名廚師今天要煮一鍋湯及一道菜,而他先煮了湯,以Serial來說,他必須等到湯滾了才能開始煮菜,但是以Concurrent來說,他可以在把料丟進去湯裡等湯滾的這段時間就開始煮菜,這樣大家懂了嗎!

Synchronous與Asynchronous

  • Synchronous(同步的)
    Synchronous指的是function要等到完成裡面的所有工作才會回傳值
  • Asynchronous(非同步的)
    Asynchronous指的是function一有工作完成就會馬上回傳值,而不需要等到全部完成才回傳

那今天我們就先介紹到這邊~明天將會用程式碼來說明把Synchronous、Asynchronous與SerialQueue、ConcurrentQueue做排列組合後會如何吧~


上一篇
【從零開始的Swift開發心路歷程-Day27】如何在App中播放影片!
下一篇
【從零開始的Swift開發心路歷程-Day29】認識GCD多執行緒Part2
系列文
從零開始的Swift開發心路歷程30

尚未有邦友留言

立即登入留言