1. 프로세스란?
- 간단하게 말하면 '실행 중인 프로그램' 이다.
- os로부터 필요한 자원을 할당받으면 프로세스가 된다.
- 둘 이상의 쓰레드를 가진 프로세스를 '멀티쓰레드 프로세스' 라고 부른다.
( 쓰레드는 간단히 말하면 공장(프로세스)에서 일하는 사람(쓰레드)으로 비유해도 좋다. )
( 프로세스는 메모리에 할당받아 자리를 차지하며, 쓰레드 또한 프로세스처럼 call stack의 공간을
필요하기 때문에 프로세스의 메모리 한계에 따라 쓰레드의 수가 정해진다. 그렇다고, 한계에 다다를
정도로 만들지는 않는다. )
2. 멀티태스킹과 멀티쓰레딩
- 멀티태스킹은 여러 개의 프로세스를 동시에 실행할 수 있는 것을 말한다.
- 멀티쓰레딩은 하나의 프로세스 내에서 여러 쓰레드가 동시에 수행하는 것을 말한다.
( 하나의 코어가 한 번에 단 하나의 작업만 수행하므로, 동시에 처리되는 코어의 개수와 작업의 개수는 항상
동일하다. 그러나, 처리해야하는 쓰레드의 수는 코어의 수보다 많기 때문에 각 코어가 아주 짧은 시간에 여러 작업을
번갈아 가면서 수행하므로 모두 동시에 수행하는 것처럼 보인다. )
3. 멀티쓰레딩의 장단점
- 장점
(1) CPU의 사용률을 향상시킨다.
(2) 자원을 보다 효율적으로 사용한다.
(3) 사용자에 대한 응답성을 높인다.
(4) 작업이 분리되어 코드가 간결해진다.
- 단점
(1) 자원을 공유하며 쓰기 때문에 동기화 문제가 발생할 수 있다.
(2) 자원을 점유하면서 교착상태가 발생할 수 있다.
'자바 > 프로세스와 쓰레드' 카테고리의 다른 글
쓰레드의 실행제어 (0) | 2022.02.20 |
---|---|
데몬 쓰레드 (0) | 2022.02.14 |
쓰레드의 우선순위와 쓰레드 그룹 (0) | 2022.02.14 |
싱글쓰레드와 멀티쓰레드 (0) | 2022.02.14 |
쓰레드의 기본적 구현과 실행 (0) | 2022.02.14 |