[번역] 동시성, 병렬성, 그리고 자바스크립트에 대한 이해
Javascript
NodeJS
• 동시성과 병렬성은 멀티태스킹을 달성하는 방법으로, 동시성은 여러 작업을 번갈아 가며 처리하는 것이고, 병렬성은 여러 작업을 동시에 수행하는 것을 의미합니다. 이 두 개념은 서로 다른 방식으로 멀티태스킹을 처리하지만, 둘 다 시간을 절약하는 데 도움이 될 수 있습니다.
• 프로그래밍에서 스레드는 작업을 병렬 또는 동시로 처리하는 데 사용되며, 스레드의 실행 방식은 하드웨어의 상황에 따라 달라집니다. CPU 코어 수가 충분하면 병렬로 실행되지만, 그렇지 않으면 운영 체제가 스레드를 인터리빙 방식으로 처리합니다. 개발자는 스레드를 사용하여 성능을 개선하고 차단을 피할 수 있으며, 최종 실행 방식은 운영 체제가 결정합니다.
• 동시성 및 병렬성을 달성하기 위해 스레드 외에도 여러 프로세스를 생성하거나 IPC 메커니즘을 사용하는 방법이 있으며, Node.js는 단일 스레드 환경에서 비동기 I/O 작업을 워커 스레드에 위임하여 동시성을 관리한다.
• Node.js에서 비동기 작업은 콜백 함수를 통해 처리되며, 예시 코드에서는 첫 번째 `setTimeout`의 콜백이 무한 루프를 실행하여 두 번째 `setTimeout`의 콜백이 실행되지 않는 상황을 설명한다.
북마크
공유하기
신고하기