[CS] 프로세스와 쓰레드

무지성개발자·2023년 8월 20일

프로세스

프로세스란 OS로 부터 할당 받는 자원의 실행 단위다. 좀 더 쉽게 풀어보자면 프로그램을 실행하면 자원을 할당 받은 프로그램의 인스턴스가 생기는데 이게 프로세스다.

특징

  • 프로세스는 독립된 메모리영역을 OS로 부터 할당 받음.

  • 최소 1개 이상의 쓰레드를 가짐.

  • 각 프로세스는 독립된 주소 공간에서 실행되어 일반적으로 다른 프로세스의 자원에 접근 할 수 없으며, 접근하려면 IPC라는 통신을 사용해야 한다.

쓰레드

쓰레드프로세스 내에서 실행되는 작업 단위다. 프로세스가 할당 받은 자원을 이용하며 쓰레드끼리는 메모리 자원을 공유한다.

특징

  • 쓰레드는 메모리 자원을 공유한다. 단, 레지스터와 stack만 쓰레드 별로 할당.

  • 하나의 쓰레드가 프로세스 자원은 변경하면, 이웃 스레드도 그 결과를 즉시 볼 수 있다.


한 줄평 : 위 쓰레드는 일반적인 정의를 말한 것이다. 자바의 쓰레드도 거의 동일하지만 차이점은 자바의 쓰레드는 프로세스가 아니라 JVM에서 실행된다.

참고 -
https://gmlwjd9405.github.io/2018/09/14/process-vs-thread.html

profile
no-intelli 개발자 입니다. 그래도 intellij는 씁니다.

0개의 댓글