Posts RxJava - 물리적인 쓰레드와 논리적인 쓰레드의 이해
Post
Cancel

RxJava - 물리적인 쓰레드와 논리적인 쓰레드의 이해

물리적인 쓰레드와 논리적인 쓰레드의 이해

  • 물리적인 쓰레드는 하드웨어와 관련이 있고, 논리적인 쓰레드는 소프트웨어와 관련이 있다.
  • 물리적인 쓰레드를 이해하기 위해서는 CPU의 코어를 먼저 알아야 한다.
  • 그럼 코어란?
    • CPU의 명령어를 처리하는 반도체 유닛
    • 코어의 갯수가 많으면 명령어를 병렬로(parallel) 더 많이 더 빠르게 처리할 수 있다.
  • 물리적인 쓰레드는 물리적인 코어를 논리적으로 쪼갠 논리적 코어이다.

thread

논리적인 쓰레드란?

  • 자바 프로그래밍에서 사용하는 그 쓰레드가 논리적인 쓰레드이다.
  • 논리적인 쓰레드는 프로세스 내에서 실행되는 세부 작업의 단위이다.
  • 프로세스는 컴퓨터에서 실행할 수 있는 실행 파일(프로그램)을 실행하면 생기는 인스턴스이다.
  • 논리적인 쓰레드의 생성 개수는 이론적으로는 제한이 없지만 실제로는 물리적인 쓰레드의 가용 범위내에서 생성할 수 있다.

물리적인 쓰레드와 논리적인 쓰레드의 이해

  • 병렬성 : 실제로 작업들이 병렬로 작업되는 성질 (동일한 시간대에 여러개의 쓰레드들의 동시에 실행이된다.)
  • 동시성 : 실제로 병렬적으로 실행이 되는 것처럼 보이지만 여러 개의 작업이 짧은 시간에 번갈아 가면서 병렬로 처리되는 것처럼 시행되는 성질을 동시성이라고 한다.

물리적인 쓰레드와 논리적인 쓰레드 관계

이 글은 inflearn에 있는 Kevin의 알기 쉬운 RxJava 2부를 공부하고 작성한 글입니다.
강의영상 링크

This post is licensed under CC BY 4.0 by the author.

RxJava - Processor와 Subject

RxJava - 스케쥴러란? + 스케쥴러의 종류(1)

Comments powered by Disqus.