본문 바로가기

JavaScript14

싱글 스레드, 콜백 함수, 비동기 처리 자바스크립트는 싱글 스레드를 가지는 언어이다 따라서 앞의 작업이 막히면 뒤의 작업도 다 막혀서 실행이 되지 않는다 싱글스레드는 그렇구나... 에서 나아가서 왜 싱글스레드는 그렇게 선형적이고 멈출까? 이유는 자바스크립트 call stack 콜스택 만을 가지고 있기 때문이다 LIFO 인 스택의 성질 때문에 앞에서 막혀버리면 막힌 아래 부분이 그대로 실행을 못하게 되는 것이다 그래서 싱글 스레드인 자바스크립트는 작업이 막히면 다음 작업이 실행되지 않는다 하.지.만! 자바스크립트에는 비동기 처리라는 것이 있는데 선형적인 작업에서 벗어나서 다른 일을 시키고 일단 작업을 진행하고 후에 그 결과 값을 받아서 사용가능하다 이것이 비동기적 함수에는 setTimeout 과 제이쿼리의 ajax 가 있다 이 중 setTime.. 2022. 7. 27.
싱글 스레드, 멀티스레드 cpu 를 프로세서, 연속하여 실행중인 프로그램을 프로세스라고 하며 하나의 코어를 가진 cpu가 작업할 수 있는 프로그램은 한 번에 하나 뿐이다 프로그램을 실행하는 작업대를 스레드라고 할 수 있겠다 하지만 동시에 여러 프로그램을 실행 시켜야 할 일이 많으므로 작업대를 병렬 처리하여 동시에 처리하곤 하는데 하나의 작업대에서 선형적으로 이어나가는 것이 순차 실행 - 싱글 스레드 여러개의 작업대에서 병렬적으로 풀어나가는 것이 병렬 실행 - 멀티 스레드 라고 한다 그림으로 나타내면 아래와 같다 하지만 병렬로 처리하는 멀티 스레드의 경우 말은 병렬이지만 실제로는 하나의 cpu가 이거하고 저거하고 정신없이 움직이며 1인 다역을 소화하고 있는것인데... 이를 context switching 컨텍스드 스위칭 이라고 한.. 2022. 7. 26.