기본 지식본문에 앞서 읽으면 도움 될 만한 요소들을 준비했습니다. Show
프로세서와 프로그램과 프로세스프로세서
프로그램
프로세스
아래 그림은 프로그램이 프로세스로 로드 되는 과정을 보여줍니다.
이를 어떻게 해결할 수 있을까요? 여기서 등장하는게 경량화된 프로세스(lightweight process) Thread 라는 개념입니다. 쓰레드는 프로세스와 어떤 다른점이 있기 때문에 경량화된 프로세스라고 하는 것일 까요? 바로 쓰레드는 자기 자신의 자원을 다른 프로세스와 공유하지 않는 프로세스와 다르게 많은 부분을 공유합니다. 스레드는 code, data, heap 자원을 공유하고 stack 자원만 공유하지 않습니다. 따라서 프로세스의 context switching 가 다르게 캐싱 적중률이 올라갑니다.(context switching 을 해줄때 자원을 많이 바꿀 필요가 없다는 의미입니다.) Process vs Thread본격적으로 프로세스와 스레드를 비교해보겠습니다.
표로 만들어 비교하면 아래와 같습니다. Process Thread
Process 와 Thread 각각 언제 사용해야 할까?
Multi-Processing vs Multi-ThreadMulti-Processing
Multi-Thread
그림으로 설명
결론
더 알아볼것
참조
|