[Java][Thread] 프로세스와 쓰레드

2022. 6. 28. 17:58JAVA/Language

1. 프로세스와 쓰레드는 무엇인가?

  • 프로세스 : 실행중인 하나의 프로그램
  • 쓰레드 : 하나의 프로세스안에서 수행되는 1개 이상의 작은 프로세스(경량 프로세스라고도 부름)

프로세스의 구성

위 그림에서 하나의 프로세스가 하나의 쓰레드를 가지고 있으면 싱글쓰레드 프로세스라고 부르고 쓰레드가 2개 이상이라면 멀티쓰레드 프로세스라고 부릅니다.

 

2. 멀티태스킹과 멀티쓰레딩

  • 멀티태스킹(MultiTasking, 멀티프로세싱) : 메모리 위에 여러개의 프로세스를 올려두고 실행하는 것을 의미합니다.
  • 멀티쓰레딩(MultiThreading) : 하나의 프로세스 내에서 여러 쓰레드가 동시에 작업을 수행하는 것을 의미합니다.

 

3. 멀티쓰레딩의 장단점

  • CPU의 사용률을 향상시킴
  • 자원을 보다 효율적으로 사용할 수 있음
  • 사용자에 대한 응답성 향상
  • 작업이 분리되어 코드가 간결해짐

 

References

source code : https://github.com/yonghwankim-dev/java_study/tree/main/ch13
[도서] Java의 정석, 남궁 성 지음