리소스가 공유되면서 서로 충돌하는 것을 막기위해 공유 메모리와 같은 리소스를 잠그고, 한 번에 하나의 작업만을 하는 프로그래밍 방식
동시성, 각각 다른 CPU 코어에 2개의 작업을 실행할 때, 리소스를 공유하여 실행하는 것. 리소스를 공유하여 실행하기 때문에 어떤 작업이 먼저 실행 완료될 지 예측하기 어려움.
작업을 요청받는 창구가 하나. event Emitter가 다음 주기에 실행 될 작업을 event queue에 추가.
event loop가 event queue에서 작업을 가져와서 이벤트 핸들러로 처리한다.
이 때 작업의 실행결과를 예측하기 쉬움.