스레드의 정의

어떠한 프로그램 내에서, 특히 프로세스 내에서 실행되는 흐름의 단위를 말한다.

CPU 사용하는 기본단위를 뜻한다.

일반적으로 한 프로그램은 하나의 스레드를 가지고 있지만, 프로그램 환경에 따라 둘 이상의 스레드를 동시에 실행할 수 있다. 이러한 방식을 멀티스레드라고 한다.

 

 

 

멀티 스레딩

멀티 스레드란 하나의 프로세스 내에서 둘 이상의 스레드가 동시에 작업을 수행하는 것을 의미한다.

멀티 스레드는 각 스레드가 자신이 속한 프로세스의 메모리를 공유한다.

 

멀티스레딩의 장점

  • NonBlocking 으로 처리를 할수있다.
  • Resource 자원을 공유가 쉽다. (프로세스의 shared-memory 나 message-passing 방식에 비해 쉽다.)
  • Context switching 비용이 적다 (프로세스보다 적은 overhead)
  • Scalability 확장성이 뛰어나다.

 

동시성

싱글 코어에서 멀티 스레드를 동작시키기 위한 방식으로 멀티 태스킹을 위해 여러개의 스레드가 번갈아가면서 실행되는 성질을 말한다.

동시성을 이용한 싱글 코어의 멀티 태스킹은 각 스레드들이 병렬적으로 실행되는 것처럼 보이지만 사실은 번갈아가면서 조금씩 실행되고 있는 것이다.

 

병렬성

멀티코어에서 멀티스레드를 동작시키는 방식으로, 한개 이상의 스레드를 포함하는 각 코어들이 동시에 실행되는 성질을 말한다.

 


참고 : 

https://velog.io/@goban/%EC%8A%A4%EB%A0%88%EB%93%9C%EC%99%80-%EB%8F%99%EC%8B%9C%EC%84%B1

 

https://chanto11.tistory.com/63

 

https://beststar-1.tistory.com/24

 

 

 

 

'개발합시다. > BackEnd 공부' 카테고리의 다른 글

PostgreSQL이란?  (0) 2021.08.17
운영체제 메모리 관리란?  (0) 2021.08.16
웹호스팅이란??  (0) 2021.08.13
도메인 & 도메인네임 이란?  (0) 2021.08.13
HTTP 란 무엇인가?  (0) 2021.08.10

+ Recent posts