Apple Developer Documentation
iOS
iOS 워크북
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var view1: UIView!
@IBOutlet weak var view2: UIView!
override func viewDidLoad() {
super.viewDidLoad()
threadTest()
}
var colorList : [UIColor] = [
.blue,
.black,
.brown,
.red,
.gray,
.green,
.orange,
.yellow,
.cyan
]
func threadTest() {
DispatchQueue.global().async {
for color in self.colorList {
DispatchQueue.main.sync {
self.view1.backgroundColor = color;
}
sleep(1);
}
}
DispatchQueue.global().async {
for color in self.colorList {
DispatchQueue.main.sync {
self.view2.backgroundColor = color;
}
sleep(1);
}
}
//비동기 -> 다른 작업이 끝날때까지 기다리지 않음
//-> 각각 스레드가 동시에
//-> 모든 스레드가 끝나는 정확한 시간을 알 수 없음
//동기 -> 다른 작업이 끝나고 실행
//-> 한 스레드가 끝나고 다음 스레드가 실행
}
}
iOS 10주차 워크북 (Token & Login)