멀티 프로세스와 멀티 스레드
- 프로세스 : 운영체제는 실행 중인 프로그램을 관리
- 멀티 태스킹 : 두 가지 이상의 작업을 동시에 처리하는 것
- 스레드 : 코드의 실행 흐름
- 멀티 스레드 : 두 개의 코드 실행 흐름. 두가지 이상의 작업을 처리
- 멀티 프로세스 = 프로그램 단위의 멀티 태스킹
- 멀티 스레드 = 프로그램 내부에서의 멀티 태스킹
메인 스레드
- main() 메소드의 첫 코드부터 순차적으로 실행
- main() 메소드의 마지막 코드를 실행하거나 return문을 만나면 실행을 종료
- 메인 스레드는 추가 작업 스레드들을 만들어서 실행시킬 수 있음
- 메인 스레드가 작업 스레드보다 먼저 종료되더라도 작업 스레드가 계속 실행 중이라면 프로세스는 종료되지 않음
작업 스레드
- 멀티 스레드 프로그램을 개발 시 먼저 몇 개의 작업을 병렬로 실행할지 결정하고 각 작업별로 스레드를 생성
- 프로그램에서 병렬로 실행할 작업을 결정
익명 구현 객체
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
}
} );
500m/s = 0.5s
Thread 자식 클래스로 생성
- Thread 클래스를 상속한 다음 run() 메소드를 재정의
- 객체를 생성 혹은 Thread 익명 자식 객체를 사용 가능
다중상속 : interface Runnable
전역은 공유해서 사용한다.
데이터 주고 받음
협업
참조타입 메모리 그림