본문 바로가기
프로그래밍 언어

싱글스레드와 멀티스레드의 장단점

by do_ng 2022. 3. 3.

금방 쓰고 버릴게 아니라면 프로그램이 돌아가게끔 빨리 만드는게 중요한게 아니라 

운영시점에서 성능이나 심각한 오류 사항이 발생이 안하도록 초기에 진단해서 잡는게 좋지 않을까?? 

 

싱글 쓰레드라고 하면 한번에 하나의 작업만 수행하는 것인데 자바스크립트로 만든 웹 사이트를 보면 여러 요청이 오가는 경우가 많은데 왜? 자바스크립트는 싱글 쓰레드 방식인가? 

 

싱글 쓰레드로 어떻게 한번에 여러 요청을 처리 하는지?? 

비동기 작업을 통해 여러 요청들을 처리함 

자바스크립트 런타임 환경

Call Stack : 자바스크립트에서 수행해야 할 함수들을 순차적으로 처리하는 공간 

Web API : 웹 브라우저에서 제공하는 API로 AJAX나 Timeout 등의 비동기 작업을 실행 

Task Queue : Web API에서 넘겨받은 CallBack 함수를 저장 

Event Loop : Call Stack 비어있다면 Task Queue의 작업을 Call Stack으로 옮긴다. 

 

자바스크립트는 왜? 멀티 쓰레드가 아니라 싱글 쓰레드 방식을 사용하는가?

멀티 쓰레드인 경우 동시성 문제 발생 --> 동시성 문제가 발생하는게 웹사이트에 얼마나 큰 문제를 일으키는가?? 

 

 

 

 

넥사크로 ---> 비동기 방식으로 돌아가는 건가?? 

 

참고 : https://chanyeong.com/blog/post/44 

 

자바스크립트는 왜 싱글 쓰레드일까? :: chanyeong

자바스크립트라는 언어는 싱글 쓰레드 언어라고 알려져있다. 보통 싱글 쓰레드라고 하면 한 번에 하나의 작업만 수행할 수 있다고 생각한다. 그렇다면 자바스크립트를 주로 사용하는 웹 사이트

chanyeong.com

https://okky.kr/article/721501

'프로그래밍 언어' 카테고리의 다른 글

실수 자료형  (0) 2022.03.20
자료형  (0) 2022.03.19
자바에서 지역변수가 초기화 되지 않는 이유?  (0) 2022.03.02
자바스크립트 입문 1 (async,defer)  (0) 2021.05.20
websocket  (0) 2021.03.16