물리적인 쓰레드와 논리적인 쓰레드의 이해
- 물리적인 쓰레드는 하드웨어와 관련이 있고, 논리적인 쓰레드는 소프트웨어와 관련이 있다.
- 물리적인 쓰레드를 이해하기 위해서는 CPU의 코어를 먼저 알아야 한다.
- 그럼 코어란?
- CPU의 명령어를 처리하는 반도체 유닛
- 코어의 갯수가 많으면 명령어를 병렬로(parallel) 더 많이 더 빠르게 처리할 수 있다.
- 물리적인 쓰레드는 물리적인 코어를 논리적으로 쪼갠 논리적 코어이다.
논리적인 쓰레드란?
- 자바 프로그래밍에서 사용하는 그 쓰레드가 논리적인 쓰레드이다.
- 논리적인 쓰레드는 프로세스 내에서 실행되는 세부 작업의 단위이다.
- 프로세스는 컴퓨터에서 실행할 수 있는 실행 파일(프로그램)을 실행하면 생기는 인스턴스이다.
- 논리적인 쓰레드의 생성 개수는 이론적으로는 제한이 없지만 실제로는 물리적인 쓰레드의 가용 범위내에서 생성할 수 있다.
물리적인 쓰레드와 논리적인 쓰레드의 이해
- 병렬성 : 실제로 작업들이 병렬로 작업되는 성질 (동일한 시간대에 여러개의 쓰레드들의 동시에 실행이된다.)
- 동시성 : 실제로 병렬적으로 실행이 되는 것처럼 보이지만 여러 개의 작업이 짧은 시간에 번갈아 가면서 병렬로 처리되는 것처럼 시행되는 성질을 동시성이라고 한다.
이 글은 inflearn에 있는 Kevin의 알기 쉬운 RxJava 2부를 공부하고 작성한 글입니다.
강의영상 링크