Community

팀장님이 저한테 와서 일을 지시하는데, "A님, C작업 해주세요."라고 말하고, 뒤에서 다될 때까지 기다리고 있으면 동기식이고요, "A님, C작업 다하시고 나면 저한테 알려주세요"라고 말하고 자

팀장님이 저한테 와서 일을 지시하는데, "A님, C작업 해주세요."라고 말하고, 뒤에서 다될 때까지 기다리고 있으면 동기식이고요, "A님, C작업 다하시고 나면 저한테 알려주세요"라고 말하고 자리로 가버리면 비동기식입니다. 어떤 함수를 호출하고 결과가 나올 때까지, (코드의 순서상) 다음 명령이나 함수 호출까지 진행되지 않고 차례로 진행하는 보통의 방식이 동기식입니다. 반면, 비동기식은 어떤 함수를 호출하고, 그 결과에 대해서 기다리지 않고, 다음 명령이나 함수 호출로 진행되게 됩니다. 그러면 비동기식은 그 결과를 어떻게 하느냐? "결과가 나오면 결과에 따라 어떤어떤 작업을 해줘"라고 요청을 해두게 되며, 그 요청은 해당 작업이 완료된 시점에 수행됩니다. 콜백함수를 전달해 두는 형식으로 활용하죠. I/O 작업처럼 CPU 시간 대비 오래걸리는 작업을 할 때, 메인스레드가 멍청히 기다리기보다 다른 일을 하는데 도움이 되기도 하고요, 자바스크립트 환경처럼 싱글스레드 환경에서는 비동기식으로 많이 작업하게 됩니다. 단일 스레드인 메인스레드가 멍청히 기다리고 있으면, 먹통이 되는 문제가 있으니까요. 팀장님이 내가 업무를 완수할 때까지 뒤에서 가만히 서있으면 곤란한 것과 비슷하죠. ^^

알림

알림이 없습니다