작성
·
204
답변 1
1
네네 창혁 님!
일반적으로 main.async를 사용하는 상황이 어떤 상황이냐면... 2번쓰레드에서 이미지 같은 것을 받아와서 (이미지 표시는 다시 1번쓰레드/메인쓰레드에서만 해야하니까) 작업을 다시 보내주는 거예요.
그런데, 그러면 왜 굳이 async(비동기)이냐? 라고 생각해보시면.. 반대로 sync(동기)로 보내면.. (동기는 보낸작업이 끝날때까지 기다린다고 말씀드렸고) 이런 경우.. 2번쓰레드가 기다리게 됩니다..
이미지를 다 받아와서 이제 화면에 표시하라고 1번 쓰레드에 다시 보낸 것인데, 2번 쓰레드는 굳이 그 이미지 표시하는 작업을 기다릴 필요가 없죠. (왜냐면 2번 쓰레드 입장에서는 할일 다 하고 1번 쓰레드로 보낸 것이니까..)
이런 의미로 main.async로 사용하는 거예요 :)
(2번쓰레드에서 1번쓰레드로 보낸 일을, 2번쓰레드 입장에서 기다리지 않겠다.)
(물론 main쓰레드 자체는 직렬큐 이기 때문에 1개이고.. 순서적으로 동작하지만, 2번 쓰레드에서 이미지 받아온 일을 어느 순간에는 작업으로 할당받아서 표시하게 되는것은 맞고요.)
열공하시고요!!
화이팅 :)