스레드와 동시성

ChaeHo95·2022년 6월 28일
0

RoadMap

목록 보기
10/11

스레드

어떠한 프로그램 내에서, 특히 프로세스 내에서 실행되는 흐름의 단위
일반적으로 한 프로그램은 하나의 스레드를 가짐
프로그램의 환경에 따라 둘 이상의 스레드를 동시에 실행 가능(멀티 스레드)

멀티 스레드

하나의 프로세스 내에서 둘 이상의 스레드가 동시에 작업을 수행하는 것을 의미하며 각 스레드는 자신이 속한 프로세스의 메모리를 공유

  • 동시성(Concurrency)
    싱글 코어에서 멀티스레드를 동작시키는 방식
    여러 개의 스레드가 번갈아가면서 실행되는 성질
    멀티 스레드로 동시성을 만족시킬 수 있지만 동시성과 멀티 스레드는 연관이 없다
    번갈아 가면서 실행 되기 때문에 CPU의 의미없는 시간이 생김
    코틀린은 싱글스레드에서 코루틴을 이용하여 동시성을 만족한다.
코루틴(Coroutine):
	싱글 스레드에서도 루틴(routine) 이라는 단위(맥락상 함수와 동일)로 
    루틴간 협력이 가능하며, 동시성 프로그래밍을 지원하고 비동기 처리를
    쉽게 도와주는 개념
  • 병렬성(Parallelism)
    멀티 코어에서 멀티 스레드를 동작시키는 방식으로, 한개 이상의 스레드를 포함하는 각 코어들이 동시에 실행되는 성질
    병렬성은 각 코어들이 동시에 실행되므로 CPU의 의미없는 시간이 줄어 들어 성능이 좋아지지만 CPU 수보다 처리해야 할 프로세스나 스레드 수가 많다면 CPU를 사용하기 전까지 대기시간이 발생
profile
what you do matters ,but why you it matters much more 당신이 무엇을 하는지는 중요하지만, '왜' 그것을 하는지는 훨씬 더 중요합니다.

0개의 댓글