2024.10.16 스레드, 스레드풀

장재영·2024년 10월 16일
0

IOCP 과제를 제출 후 강의를 듣던 중 내가 알아본(이해한) 내용이랑 많이 다른거같아 다시 공부하게 되었다.

스레드

  • 스레드는 한마디로 작업자이다.
    처음에는 스레드 = 코드 라고 생각하고 진행했는데 하다보니 전혀 다르다는걸 알게되었다.

  • 아래는 일반적인 프로그램에서 코드 실행 과정이다.

  1. 프로그램이 코드(작업)를 실행시키기 위해 스레드라는 작업자를 만든다(고용한다).
  2. 프로그램은 스레드가 어떤 코드(작업)를 실행할지 지정한다.
  3. 운영체제의 스케줄러에 스레드가 등록된다.
  4. 운영체제 스케줄러가 스레드 중 하나를 선택해 CPU에서 실행한다.
  5. 실행된 스레드 중 지속이 필요없는 스레드는 소멸된다(정시 퇴근).

    ex) 클릭 이벤트를 담당하는 코드가 있다고하면 스레드는 항상 클릭을 감지해야 하기 때문에 실행된 후 소멸되어서는 안됨.

스레드 풀

  • 스레드 풀은 스레드라는 일꾼을 만들어놓고 재 사용(야근) 하는 것이다.

  • 아래는 스레드 풀에서 프로그램에서 코드 실행 과정이다.

  1. 프로그램이 코드(작업)를 실행시키기 위해 스레드라는 일꾼을 만든다(고용한다).
  2. 프로그램은 스레드가 어떤 코드(작업)를 실행할지 지정한다.
  3. 운영체제의 스케줄러에 스레드가 등록된다.
  4. 운영체제 스케줄러가 스레드 중 하나를 선택해 CPU에서 실행한다.
  5. 실행된 스레드는 2번 상태(일거리를 받기 전 상태)로 돌아간다.(야근 시작)
  6. 프로그램이 종료되면 스레드를 소멸시킨다.(새벽3시 퇴근)

결론

  • 스레드를 작업자로 생각하니 스레드 풀 까지 이해가 되었다.
profile
개발 하고 싶은 비버

0개의 댓글