본문 바로가기

Kotlin/8. Thread

8.1 Thread란

Process

  • 컴퓨터에서 연속적으로 실행되고 있는 프로그램
  • Program은 저장 매체에 존재하는 실행 파일을 의미 그것이 실행 된 것이 Process
  • 여러개의 프로세스가 실행 되는 것을 멀티태스킹이라고 한다
  • 자신만의 독립적인 메모리 공간이 있음 -> 서로 간의 데이터 공유가 까다로움
  • Multi-Process : 여러개의 프로세스가 실행되는 것
  • 한 개 이상의 쓰레드를 가질 수 있음

Process 관리

  • RunTime 클래스를 사용해서 관리 가능
  • 함수
    • 프로세스 생성: exec()
    • 종료될 때 까지 기다림 : waitFor()
    • 종료 시키기:  destroy()

 

Concurrency(동시성)

  • 시분할
    • 각 Thread 마다 동일한 시간을 할당하여 교대로 실행
    • 각 Task가 실행되는 시간을 모두 합한 시간만큼 소요
  • 병렬
    • 각 Thread를 한번에 동시 실행
    • 각 Task 중 제일 오랜 시간이 소모되는 Task 만큼 시간이 소요

 

Thread

  • 한 개의 Process내에서 동시에 실행되는 작업의 단위
  • Process의 공유된 자원을 사용해서 서로간의 데이터 공유가 비교적 덜 까다로움
  • Thread 내에서 생성한 자원은 해당 Thread에 종속적
  • Multi-Process : 한 개의 Process 내에서 동시에 2개 이상의 Thread가 실행되는 상태
  • 장점: 실행 속도, 반응 시간, 동시성
  • 함수
    • start() : 해당 Thread 객체를 실행시키는 메소드
    • run(): start() 시 Thread 객체의 run 메소드가 시작된다

 

 

Thread의 상태

getState() 쓰레드의 상태 설명
NEW 쓰레드 생성 생성은 되었으나 start() 하지 않은 상태
RUNNABLE 실행 대기 언제든 실행으로 갈 수 있는 상태
WAITING 일시 대기 다른 Thread의 통지를 기다림
TIMED_WAITING 주어진 시간 대기
BLOCKED unlock 되기를 기다림
TERMINATED 실행 종료 실행 종료 상태

 

'Kotlin > 8. Thread' 카테고리의 다른 글

8.5 Thread Synchronization  (0) 2023.10.09
8.4 Join / Interrupt  (0) 2023.10.08
8.3 Thread 만드는 방법(2)  (0) 2023.10.02
8.2 Thread 만드는 방법(1)  (0) 2023.10.02
8. Thread  (0) 2023.10.02