기술 면접 준비
Day 2 - 동기와 비동기, 프로세스와 스레드
완두노예
2023. 5. 9. 12:44
1. 동기 (Synchronous)와 비동기 (Asynchronous) 코드 실행 방식에 대해 설명해보세요.
- 동기 코드 실행 방식은 코드가 위에서부터 순서대로 실행되는 방식입니다. 코드에서 함수를 호출하면 함수가 완료될 때까지 기다렸다가 그 결과를 반환받아 다음 코드를 실행합니다.
- 비동기 코드 실행 방식은 코드가 위에서부터 순서대로 실행되지 않는 방식입니다. 코드에서 함수를 호출하면 함수가 실행 중일 때 다음 코드를 실행합니다. 함수가 완료될 때까지 기다리지 않고 결과를 반환받지 않으며, 대신 콜백 함수나 프로미스와 같은 메커니즘을 사용하여 함수가 완료되면 결과를 처리합니다.
2. 프로세스 (Process)와 스레드 (Thread)의 차이점은 무엇인가요?
- 프로세스는 운영체제로부터 자원을 할당 받아 실행 중인 프로그램을 말합니다.
각 프로세스는 독립된 메모리 공간을 가지며, 다른 프로세스의 메모리에 직접적인 접근이 불가능합니다.
프로세스는 프로그램 실행 중 운영체제로부터 할당 받은 자원을 사용하여 독립적으로 실행됩니다.
따라서, 하나의 프로세스가 문제가 생겨도 다른 프로세스에는 영향을 주지 않습니다. - 스레드는 하나의 프로세스 내에서 실행되는 실행 단위입니다.
프로세스 내에서 스레드는 독립적으로 실행되지 않고 프로세스가 할당받은 자원을 공유하며 실행됩니다.
스레드는 하나의 프로세스 내에서 여러 개가 동시에 실행될 수 있으며 이를 멀티스레딩이라고 합니다.
멀티스레딩은 하나의 프로세스에서 여러 작업을 동시에 수행할 수 있기 때문에
프로그램의 실행 속도를 향상시키는 데에 유용합니다.
정리하면 프로세스와 스레드의 차이점은
프로세스는 각각 독립적인 메모리 공간을 가지며 다른 프로세스의 메모리에 직접적인 접근이 불가능하다는 점입니다.
반면, 스레드는 하나의 프로세스 내에서 동작하며, 프로세스의 자원을 공유하며 실행됩니다.