싱글 스레드 프로세스

멀티 스레드 프로세스

- 스레드는 독립적으로 실행되는 프로세스의 또다른 복제본인다.
- 스레드는 코드, 힙 같은 주소공간을 공유한다
- 각각의 스레드는 독립적인 PC 값을 가지고 있다. 각각의 스레드는 같은 프로그램에 다른 부분을 실행하는 것
- 각각의 스레드는 독립적인 FUNCTION CALL 을위한 SP 를 가지고 있다.
프로세스와 스레드 차이가 멀까 ?
- 부모 프로세스는 fork 를 통해서 자식프로세스를 만든다.
- 이둘은 같은 주소공간을 공유하지않는다.
- 즉 메모리의 추가적인 공간이 필요하다
- 부모 프로세스가 두개의 스레드를 실행하는경우
- 스레드1, 2 는 같은 주소 공간을 공유한다.
- 스레드간의 소통을위해 전역변수가 사용돨수있다.
- 스레드는 같은 주소공간을 사용한다는 것을 제외하고는 분리된 프로세스와 같다.
스레드의 특징
- 하나의 프로세스는 다수의 CPU 코어를 효율적으로 활용 할 수있다.
- 동시성은 하나의 CPU 코어에서 동시에 다수의 스레드, 프로세스의 실행을 하는것
- 병렬성은 다수의 CPU 코어에서 다수의 스레드, 프로세스의 실행을 하는것
- 병렬성이 없어도 스레드의 동시성은 스레드중 하나가 블락되도 효율적인 CPU 의 사용을 보장한다.