👊

자바스크립트는 왜 ? 싱글쓰레드인가?

정확하게 말하자면, 자바스크립트의 메인 쓰레드인 '이벤트 루프'가 싱글 쓰레드 이기 때문에, 자바스크립트를 싱글 쓰레드 언어라고 부른다.
이벤트루프만 독립적으로 실행되지 않고, 웹 브라우저나 NodeJS같은 멀티쓰레드 환경에서 실행된다.
즉, 자바스크립트 자체는 싱글쓰레드가 맞지만, 자바스크립트 런타임은 싱글 쓰레드가 아니다.
그래서 자바스크립트는 왜? 싱글쓰레드 일까?
이유는 "쉬워서" 이다.
만약에 자바스크립트가 멀티쓰레드 였으면, 웹페이지에서 발생하는 동시성 문제에 대해 해결해야 했다.
멀티쓰레드로 구현된 서비스들은 이 동시성 문제에 대해 많은 신경을 쓴다.
단일 쓰레드인 자바스크립트는 교착상태와 같은 멀티쓰레드 환경에서 발생할 수 있는 복잡한 상황을 신경 쓸 필요가 없고 비동기처리를 통해, 여러 요청을 처리 할 수 있다.