思い立ったが吉日!

iOSが好きです。

GCDの用語整理

GCDの用語整理

GCDのディスパッチキューには

  • 直列
    • DISPATCH_QUEUE_SERIAL
  • 並列
    • DISPATCH_QUEUE_PRIORITY_HIGH
    • DISPATCH_QUEUE_PRIORITY_DEFAULT
    • DISPATCH_QUEUE_PRIORITY_LOW
    • DISPATCH_QUEUE_PRIORITY_BACKGROUND

がある

また、それぞれ処理に同期(sync)と非同期(async)がある

  • 直列はin FIFO orderで、ディスパッチ内部は先入れ先出しで順々に処理されていく。

  • 並列はdisk I/O is throttledで順序はバラバラ。

  • 同期は処理の完了を待ってから次の処理に移る。

  • 非同期は処理の完了を待たずに次の処理を始め、その完了は各々に干渉しない。

したがって、パターンとして

  • 直列 同期
  • 直列 非同期
  • 並列 同期
  • 並列 非同期 がある。

ややこしいですが、mixiさんの研修資料に実行結果が載ってますので、参考にすると良さそうです。

https://github.com/mixi-inc/iOSTraining/wiki/8.2-Grand-Central-Dispatch