스레드의 정의
어떠한 프로그램 내에서, 특히 프로세스 내에서 실행되는 흐름의 단위를 말한다.
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 |