강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của wlxo04010926
wlxo04010926

câu hỏi đã được viết

Allen iOS Concurrency (Đồng thời) - Hiểu về Dispatch Queue và Operation Queue

2) Giới thiệu GCD/Hoạt động đơn giản

global async안에 global async를 만들게되면 어떻게 되나요??

Viết

·

369

2

강의를 보고 global async를 알았습니다. 이게 작업을 큐에 넣어준다고 하셨는데, global async 클로저 안에 global async를 넣으면 어떻게 되는건가요??

iosswift

Câu trả lời 2

1

wlxo04010926님의 프로필 이미지
wlxo04010926
Người đặt câu hỏi

지금 강의를 더 보다가 위 내용이 나왔는데 친절하게 답변을 남겨주셔서 감사합니다. async를 사용한다면 강의에서 나온 교착상태에도 안빠지겠군요!

allen님의 프로필 이미지
allen
Người chia sẻ kiến thức

네네 맞습니다.. :)

1

allen님의 프로필 이미지
allen
Người chia sẻ kiến thức

네 안녕하세요 지태님! 아마 강의를 더 수강하시다보면, 뒤쪽에서 내용이 나오기는 할텐데요,

DispatchQueue.global().async {
     // 클로저 안의 작업이 2번쓰레드에서 일을 함
}

위와 같은 상황은 클로저 안의 모든 작업을 예를 들자면 2번쓰레드에서 작업을 하는 것이고요.

여기서, 지태님이 생각하시는 것처럼

DispatchQueue.global().async {
     print("안녕하세요")       // 2번쓰레드에서 일을 함

     DispatchQueue.global().async {
          print("반갑습니다.")          // 작업을 다시 보냄 (3번쓰레드에서 일을 함)
     }
}


이렇게 일을 시키시면 2번쓰레드에서 하던 작업을
다시 "동시의" 다른 쓰레드로 보내서 작업을 하게 됩니다.
(큐가 알아서 보내게 되기 때문에 다시 2번쓰레드에서 일을 하게 될 수도 있지만, 개념적으로는 "반갑습니다"를 다시 다른 쓰레드에 보내서 일을 하게된다 라고 생각하시면 됩니다.)

감사합니다. :)

Hình ảnh hồ sơ của wlxo04010926
wlxo04010926

câu hỏi đã được viết

Đặt câu hỏi