LoginSignup
6
4

More than 3 years have passed since last update.

同期、非同期処理について

Last updated at Posted at 2020-11-21

同期処理と非同期処理の基本

同期処理とは

あるタスクを順番に実行する方式で、そのタスクが実行されている間は他のタスクが中断される

非同期処理とは

ある処理を実行する間に他の処理を実行できる

DispatchQueueとは

GCD(Grand Central Dispatch)の一部
DispatchQueueないにタスクを詰めると非同期で実行してくれる

DispatchQueue自体には、
Serial、Concurrent、mainの3種類がある。

DispatchQueue.main

OS側で作成済みなので呼び出すだけ。
1つだけ存在。
直列処理タイプ。
UI表示系タスクはここで行わないと動かない。

viewController.swift
let mainQueue = DispatchQueue.main

DispatchQueue.Global

OS側で作成済みなので呼び出すだけ。
5つ存在。(ただし、実質使えるのは4つ)
並列処理タイプ。
用途を指定して呼出し。

viewController.swift
// UserInteractiveタイプ
let grobalQueue = DispatchQueue.global(qos: .userInteractive)

sync

viewController.swift
dispatchQueue.sync {
    print("同期")
}

async

viewController.swift
dispatchQueue.async {
    print("非同期")
}
6
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
4