Thread를 공부할 때 맨날 헷갈리던 것이 있다.

CPU에서도 Thread가 나오고, 프로그래밍을 할 때도 Thread가 나오는데 이거 두 개가 같은 것인가?

전자보다 후자의 갯수가 훨씬 더 많을 것 같은데... 이 부분이 이해가 안갔다.

이번에 확실히 정리를 해본다.

 

https://the-boxer.tistory.com/24

 

물리적 스레드 vs 논리적 스레드

※ 두 스레드를 구분할 때 물리적과 논리적이라는 단어는 제가 임의로 붙인 단어입니다. 하드웨어적으로 구현된 스레드와 소프트웨어적으로 구현된 스레드를 구분하기 위함입니다. [물리적 스

the-boxer.tistory.com

 

이게 핵심이다.

운영체제가 스케줄링을 할 때 동시에 실행 가능한 스레드 수(물리적 스레드)는 정해져 있습니다. 하지만 메모리가 허용하는 논리적 스레드

수는 얼마든지 많을 수 있습니다.이들 중 운영체제에 의해 실행되지 않는 스레드는 잠들어 있을 수 있으며 운영체제는 이들 중 물리적 스레드가 허용 가능한 만큼의 스레드를 할당하여 동시에 실행시킵니다.

책에 비유하자면, 4코어 8스레드는 상/하권으로 분권된 책이 4세트(8권)있는 것과 같습니다. 이를 읽고 싶은 독자(논리적 스레드)는 수십 혹은 수백명이지만 도서관에서 빌릴 수 있는 사람은 최대 8명 입니다. 나머지는 책이 반납될때 까지 기다려야 합니다.

 

즉 쉽게 말해서, 프로그래밍할 때 나오는 Thread는 Logical thread고, CPU가 갖고있는 Thread는 Physical thread다.

 

글고 Process는 하나 이상의 Thread를 갖고 있다.

https://junshock5.tistory.com/146

 

멀티스레드를 사용하는 이유

스레드를 사용하는 이유 Thread란 실행 코드를 실행시킨다. 단, 불확실성을 가진다. (추후 스레드 경쟁조건 글 작성 예정) 스레드, 프로세스가 궁금하다면? OS가 만든 스레드: 커널 스레드 개발자가

junshock5.tistory.com

https://junshock5.tistory.com/117?category=758386 

 

프로세스, 스레드의 컨텍스트 스위칭 cpu와의 관계

프로세스(process)란? 실행파일을 클릭했을 때, 메모리(RAM) 할당이 이루어지고, 이 메모리 공간으로 코드가 올라간다. 이 순간부터 이 프로그램은 '프로세스'라 불리게 된다. 즉, 사용자가 작성한

junshock5.tistory.com

https://popcorntree.tistory.com/2

 

[1. 멀티스레드 프로그래밍 소개] 02. 프로세스와 스레드

*이 글의 내용은 한국산업기술대학교 게임공학부 정내훈 교수님의 수업을 듣고 정리한 내용입니다. 1. 프로세스와 스레드 프로세스는 초기에 하나의 시작 스레드를 가진다 스레드는 다른 스레

popcorntree.tistory.com

 

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기