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 |