JAVA - 프로세스&쓰레드

김동규·2022년 11월 21일
0

JAVA

목록 보기
37/38

프로세스와 쓰레드의 차이는?

일단 명료하게 말하자면 아래와 같다.

프로세스: 운영체제로부터 자원을 할당받은 작업의 단위.
스레드: 프로세스가 할당받은 자원을 이용하는 실행 흐름의 단위.

작업의 단위? 실행 흐름의 단위?? 잘 이해가가지않는다. 좀더 알기쉽게 예를들어 표현해보자

프로그램->프로세스->쓰레드

일단 기본적으로 포함하는관계를보자면 프로그램>프로세스>쓰레드 순이다.

프로그램을 공장이라고 가정해보자. 프로그램 이라는 공장을 가동시킬때 프로세스는 여러 부서라고 생각하자 공장전체를 돌리기위해 자재부,회계부,인사부,현장부,등등이 존재할것이다. 프로세스가 일을하면서 프로그램이라는 공장이 돌아가듯
프로그램이 메모리에 올라가면 프로세스라는 작업의 단위로 바뀌게되는것이다.

그렇다면 쓰레드는? 쓰레드는 부서안에있는 팀원들이라고 생각하자 팀원들은 자신들의 의견을 공유하며 효율적으로 일하려고 할것이다.그러므로 쓰레드는 프로세스와 다르게 스레드 간 메모리를 공유하며 작동한다. 스레드끼리 프로세스의 자원을 공유하면서 프로세스 실행 흐름의 일부가 되는 것이다.

profile
HigasiHosi

0개의 댓글