본문 바로가기

기술면접11

멀티쓰레드와 멀티프로세스의 차이점 멀티쓰레드와 멀티프로세스는 여러 작업을 동시에 처리할 수 있는 기술이다. 그러나 두 기술은 다음과 같은 차이점이 있다. 자원 공유 : 멀티쓰레드는 하나의 프로세스 내에서 여러 쓰레드가 자원을 공유하여 사용한다. 반면 멀티프로세스는 서로 다른 프로세스끼리 자원을 공유할 수 없다. 컨텍스트 스위칭 : 멀티쓰레드는 쓰레드 간의 전환 시에 컨텍스트 스위칭이 일어나며, 이는 비교적 빠른 속도로 일어난다. 반면 멀티프로세스는 프로세스 간의 전환 시에도 컨텍스트 위치잉이 일어나며, 이는 상대적으로 느린 속도로 일어난다. 메모리 사용 : 멀티쓰레드는 하나의 프로세스 내에서 여러 쓰레드가 메모리를 공유하여 사용하기 때문에, 메모리 사용량이 비교적 적다. 반면 멀티프로세스는 각각의 프로세스가 독립적으로 사용하기 때문에, .. 2023. 4. 24.
프로세스와 스레드의 차이 프로세스 메모리 상에서 실행중인 프로그램 운영체제로부터 시스템 자원을 할당받은 작업의 단위 최소 하나의 스레드를 보유하고 있으며, 각각 별도의 주소공간을 독립정으로 할당 받는다(code, data, stack, heap) 스레드 프로세스 안에서 실행되는 흐름 단위 stack만 따로 할당받고 나머지 영역(code, data, heap)은 스레드끼리 서로 공유한다 2023. 4. 14.
동기 비동기 동기 코드를 실행시키고 그 결과값을 받을 때까지 기다린 후 다음 코드를 실행하는 처리방식을 말한다 동기식에서 결과를 기다리는 과정을 blocking이라고 한다 직렬식이다 비동기 코드를 실행시키고 그 결과값을 언제 받을지 모르는 상태로 다음 코드를 실행시킨다 비동기식에서 결과를 기다리지 않는 것을 non-blocking이라고 한다 병렬식이다 2023. 4. 14.
콜백함수 콜백 함수(Callback Function) 콜백 함수란 다른 함수에게 인자로 전달되는 함수를 말합니다. 콜백 함수는 다른 함수의 실행이 끝난 뒤, 호출되어 실행되는 함수입니다. 이러한 콜백 함수는 일반적으로 비동기적인 처리에서 많이 사용됩니다. 2023. 4. 13.
이벤트루프 이벤트루프란? 이벤트루프는 자바스크립트의 비동기성을 가능하게 하는 핵심적인 개념입니다. 이벤트루프는 브라우저나 Node.js와 같은 런타임 환경에서 실행되며, 이벤트 발생 시 처리할 콜백 함수들을 큐(Queue)에 넣어놓고, 현재 실행중인 작업이 완료되면 큐에서 콜백 함수를 꺼내서 실행합니다. 이벤트루프 요소 Call Stack(호출 스택) 현재 실행중인 함수의 호출 스택을 추적합니다. 콜백 함수와 같은 이벤트와 함께 전달되는 메세지들을 보관합니다. 이벤트루프의 동작 호출 스택이 비어있을 때, 테스크 큐에서 가장 먼저 들어온 메세지를 꺼내 호출 스택으로 보냅니다. 호출 스택에서 실행할 함수와 해당 함수 내부에서 다른 함수를 호출하는 경우(콜백 함수), 호출된 함수는 호출 스택의 상단에 추가됩니다. 함수 .. 2023. 4. 13.