• 카테고리

    질문 & 답변
  • 세부 분야

    모바일 앱 개발

  • 해결 여부

    미해결

Main.sync 관련 질문입니다.

23.03.03 17:19 작성 조회수 354

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

주땡님의 프로필

주땡

질문자

2023.03.03

그리고 추가로, 저 코드 실행 시

main thread가 잠깐 멈출수도 있다고 말씀해주셨는데

그부분이 이해가 안갑니다.

멈추는 이유도 설명해주시면 감사하겠습니다ㅜ