프로세스, 스레드, 코루틴

보기·2022년 3월 3일
0

Computer Science

목록 보기
1/1
post-thumbnail

Process vs Thread

출처 : JetBrain Academy

프로세스(Process)
Heap에 메모리 할당

  • 어떤 임무를 수행하기 위한 하나의 단위
    • 프로그램이 실행되어 메모리에 적재되면 프로세스가 됨
  • 한 프로세스 안의 여러 스레드는 리소스를 공유함

스레드(Thread)
Stack에 메모리 할당

  • 프로세스의 작업 흐름
  • 하나의 프로세스에 대해 여러 스레드가 병렬 작업 가능
  • 병렬 작업시 공유하는 Heap 메모리 리소스 관리가 필요함

Thread vs Coroutine

Thread

  • 작업의 단위 : Thread
  • Stack 에 메모리 저장
  • 동시성 보장을 위해 Blocking 발생
    • OS가 관여함

Coroutine

  • 작업의 단위 : Coroutine Object
  • Heap 에 메모리 저장 ( 언어마다 상이함, JVM 기준 )
  • 동시성 보장을 위해 Suspend 사용
    • Programmer의 코드를 통해 Switching 시점 판단
    • OS가 관여하지 않음
  • 비교
    • Thread와 Coroutine 둘 다 동시성 프로그래밍을 위한 기술
    • Thread는 OS가 관여하며, Stack에 메모리 적재
    • Coroutine은 Programmer가 관여하며, Heap에 메모리 적재

요약

  • Process는 어떤 작업의 목표(Mission)을 의미한다.
  • Process의 비동기 단일 작업은 Task 라고 부르며, 일반적으로 생각하는 일의 단위이다.
  • Process의 실행 흐름은 Thread 라고 부르며 하나 또는 다수의 Task를 실행할 수 있다.
  • 단일 Thread에서 Task의 비순차(비동기)적 실행을 위해 Coroutine을 사용한다.
profile
하루를 나답게

0개의 댓글