Thread와 Process의 차이, 멀티 프로세스와 멀티 스레드

Android Chen·2021년 11월 1일
0

Process/Thread

  • 프로세스는 실행 또는 작업의 단위, 쓰레드는 프로세스 내에서 실행되는 흐름의 단위이다. 프로세스는 독립적으로 실행되지만 쓰레드는 프로세스 내의 스택 영역을 제외한 힙, 코드, 데이터영역을 공유한다.

멀티 프로세스/ 멀티 스레드

멀티 프로세스보다 멀티 스레드를 사용하는 이유

  • 간단히 말하자면 멀티 프로세스는 여러개의 프로그램을 키는 것이고 멀티 스레드는 하나의 프로그램에서 여러개의 작업을 하는 것이다.

  • 멀티 프로세스는 프로세스를 새로 생성하여 자원을 할당해야 하는 시스템콜이 필요하지만 멀티스레드는 그렇지 않기 때문에 자원을 효과적으로 관리할 수 있다.

  • 프로세스간의 소켓통신, 쉐어드메모리 등의 IPC보다 스레드간의 통신이 훨씬 비용이 적어 통신 부담이 줄어든다.

  • 스레드는 스택영역을 제외한 자원을 공유하므로 Context Switching시 스레드간의 전환 속도가 빠르다.

    -- Context Switching이란 CPU가 여러개의 프로세스의 작업을 번갈아 가며 처리하는 과정.
    -- 동작 중인 프로세스가 대기를 하면서 해당 프로세스의 상태(Context)를 보관하고, 대기하고 있던 다음 순서의 프로세스가 동작하면서 이전에 보관했던 프로세스의 상태를 복구하는 작업을 말한다.

profile
https://github.com/Userz1-redd

0개의 댓글