728x90
프로세스와 쓰레드
- 공유한다는 것은 쓰레드는 Code, Data, Heap 영역이 없다고 생각하면 됨
- Code 영역에는 코드(함수)가 올라가는데 함수에는 전역 함수, main함수가 있음
- main은 하나의 흐름이고 흐름이 2개 이상이라는 것은 main 함수 역할을 하는 함수가 2 이상이라는 의미
- main이 실행되는 동안에 main 함수 역할을 함수가 실행이 되는 구조로 코드가 작성이 됨
- 그런 함수를 쓰레드가 실행을 함
- 결국 프로세스와 쓰레드는 Code, Data, Heap 영역을 공유하기 때문에 쓰레드는 프로세스에 선언된 전역 함수, 전역 변수, 동적 할당한 메모리에 접근이 가능
- 프로세스는 자식 프로세스를 생성하면 공유가 불가능하기 때문에 IPC를 통해서 데이터를 주고받았지만 쓰레드는 메모리 공간 자체를 공유하기 때문에 별도의 통신 기법이 필요가 없음
- 프로세스는 쓰레드보다 안 좋은 것이 아닌 사용되는 상황이 다름
728x90
'Programming > System Programming' 카테고리의 다른 글
윈도우즈 시스템 프로그래밍 - 11. 쓰레드의 이해(4) (0) | 2020.07.23 |
---|---|
윈도우즈 시스템 프로그래밍 - 11. 쓰레드의 이해(3) (0) | 2020.07.22 |
윈도우즈 시스템 프로그래밍 - 11. 쓰레드의 이해(1) (0) | 2020.07.22 |
윈도우즈 시스템 프로그래밍 - 10. 컴퓨터 구조에 대한 세 번째 이야기(3) (0) | 2020.07.21 |
윈도우즈 시스템 프로그래밍 - 10. 컴퓨터 구조에 대한 세 번째 이야기(2) (0) | 2020.07.21 |