RxJava - 물리적인 쓰레드와 논리적인 쓰레드의 이해
물리적인 쓰레드와 논리적인 쓰레드의 이해
- 물리적인 쓰레드는 하드웨어와 관련이 있고, 논리적인 쓰레드는 소프트웨어와 관련이 있다.
- 물리적인 쓰레드를 이해하기 위해서는 CPU의 코어를 먼저 알아야 한다.
- 그럼 코어란?
- CPU의 명령어를 처리하는 반도체 유닛
- 코어의 갯수가 많으면 명령어를 병렬로(parallel) 더 많이 더 빠르게 처리할 수 있다.
- 물리적인 쓰레드는 물리적인 코어를 논리적으로 쪼갠 논리적 코어이다.
![](https://blog.kakaocdn.net/dn/ckw6VT/btrLovaspwR/dbvn4JZXSZK379LwjgfFH0/img.png)
논리적인 쓰레드란?
- 자바 프로그래밍에서 사용하는 그 쓰레드가 논리적인 쓰레드이다.
- 논리적인 쓰레드는 프로세스 내에서 실행되는 세부 작업의 단위이다.
- 프로세스는 컴퓨터에서 실행할 수 있는 실행 파일(프로그램)을 실행하면 생기는 인스턴스이다.
- 논리적인 쓰레드의 생성 개수는 이론적으로는 제한이 없지만 실제로는 물리적인 쓰레드의 가용 범위내에서 생성할 수 있다.
물리적인 쓰레드와 논리적인 쓰레드의 이해
- 병렬성 : 실제로 작업들이 병렬로 작업되는 성질 (동일한 시간대에 여러개의 쓰레드들의 동시에 실행이된다.)
- 동시성 : 실제로 병렬적으로 실행이 되는 것처럼 보이지만 여러 개의 작업이 짧은 시간에 번갈아 가면서 병렬로 처리되는 것처럼 시행되는 성질을 동시성이라고 한다.
![](https://blog.kakaocdn.net/dn/8Ws7p/btrLr3dqm8x/hW7mIaQCZ4DkewtOKWr2MK/img.png)
반응형
'운영체제 & 병렬처리 > Multithread' 카테고리의 다른 글
[3] std::thread 와 인자 전달 (0) | 2022.09.06 |
---|---|
[2] #include <thread> std::thread t(HelloThread); (0) | 2022.09.06 |
프로세스&쓰레드와 메모리(스택, 레지스터) (0) | 2018.09.03 |
Reentrant 와 Thread-safe 의 차이 (0) | 2015.12.16 |
error C2719: 'size': __declspec(align('16'))를 사용하는 정식 매개 변수는 정렬되지 않습니다. (0) | 2013.05.11 |