Thread란

A thread (or lightweight process) is a basic unit of CPU utilization

  • Thread의 구성
    • program counter
    • register set
    • stack space
  • Thread가 동료 thread와 공유하는 부분(=task)
    • code section
    • data section
    • OS resources
  • heavyweight process는 하나의 thread를 가지고 있는 task로 볼 수 있습니다

스크린샷 2021-05-14 오후 6 24 12

스크린샷 2021-05-14 오후 6 36 52

Thread의 장점

  1. 다중 스레드로 구성된 태스크 구조에서는 하나의 서버 스레드가 blocked(waiting) 상태인 동안에도 동일한 태스크 내의 다른 스레드가 실행(running)되어 빠른 처리를 할 수 있습니다
    • ex) 웹 브라우저가 웹 페이지를 불러올 때 html과 text를 먼저 불러오고 text만으로 사용자가 작업할 수 있게 한 다음, 다른 스레드가 image를 불러오는 작업을 할 수 있습니다
  2. 동일한 일을 수행하는 다중 스레드가 협력하여 높은 처리율(throughput)과 성능 향상을 얻을 수 있습니다.
  3. 자원 낭비를 막는다 (프로세스 각각으로 돌리면 각 프로세스당 메모리가 필요하게 되서 더 많은 메모리를 차지합니다)
  4. 스레드를 사용하면 병렬성을 높일 수 있습니다(멀티 코어일 경우)

참고

  • 반효경 교수님 운영체제 강의