작성
·
435
0
학습하면서 어려움이 있으면 DispatchQueue.global().async {
DispatchQueue.main.sync {
Thread.sleep(forTimeInterval: 1)
print("finish1")
}
}
위 코드의 굵은 코드들이 실행될때,
어떤 thread들이 실행되고 있는지 설명 부탁드리고 싶습니다.
이렇게 thread가 진행된다고 이해하면 맞나요?
답변 2
0
안녕하세요
우선 처음 질문에 올리신 이미지의 스레드 진행은 맞게 이해하셨습니다.
두번째 질문은 아래 개념을 기억하면 이해가 쉬울 것 같습니다.
main 스레드는 앱의 라이프 사이클에서 단 하나만 존재합니다.
sync는 다른 스레드를 멈추게 만듭니다.
그러므로 main에 sync를 걸었다면 그 안에 로직이 다 완료되는 시간인 1초동안 main thread가 멈추게 됩니다.
더 궁금하신 부분 있으면 추가 설명 드리겠습니다.
0