작성
·
254
0
강의에서는 Callback Queue가 Call stack에 콜백함수를 넘겨줄때 Call Stack에 Main Context를 제외한 함수가 없으면 그때 콜백함수를 넘겨준다고 강의에서 말씀하셨는데, 그럼 Call Stack에 동기 코드가 실행중이면 콜백함수는 동기코드가 다 실행되고 없어질때까지 기다렸다가 실행이 되는 것인가요?
답변 1
0
안녕하세요 이정환입니다.
MainContext는 특정 함수라기 보다는 프로그램 전체를 지칭합니다.
우리가 C언어에서 main 함수가 종료되면 프로그램 전체가 종료되듯이 이 MainContext또한 그러합니다.
따라서 MainContext가 Queue에서 제거되는 순간은 모든 비동기 콜백도 다 종료된 순간이라고 보시면 될 것 같습니다.
Q. Call Stack에 동기 코드가 실행중이면 콜백함수는 동기코드가 다 실행되고 없어질때까지 기다렸다가 실행이 되는 것인가요?
네 Call Stack에 실행해야 할 동기 코드가 남아있다면 해당 작업을 모두 수행한 다음 비동기 콜백함수가 실행됩니다.