멀티스레드
- 운영체제에서 실행 중인 애플리케이션을 프로세스라고 부른다
- 애플리케이션을 실행하면 운영체제로부터 실행에 필요한 메모리를 할당받아 애플리케이션을 실행하는데 이것이 프로세스다
- 하나의 프로그램 실행 상태에서 내부적으로 여러 가지 작업을 처리하는 것을 멀티 스레드다
- 코드의 실행 흐름을 스레드라 부를 수 있다
메인 스레드
- 모든 자바 프로그램은 main() 메소드를 실행하면 메인 스레드가 시작된다
- 싱글 스레드일 경우 마지막 코드를 실행하거나, return 문을 만나면 실행이 종료된다
- 하지만 멀티 스레드, 메인 스레드가 작업 스레드를 만들어 병렬로 코드들을 실행할 수 있고 실행 중인 스레드가 하나라도 있으면 프로세스는 종료되지 않는다
Thread 클래스 생성
작업 스레드를 직접 생성하려면 Runnable을 파라미터로 갖는 생성자를 호출해야 한다
Runnable은 작업 스레드가 실행할 수 있는 코드를 가지고 있는 객체라고 해서 붙여진 이름이다. 이 Runnable은 인터페이스 타입이기에 구현 객체를 만들어 대입해야 하는데, 이 Runnable의 run() 메소드를 오버라이딩을 해서 작업 스레드가 실행할 코드를 작성해야 한다.
Thread 생성자에 Runnable 객체를 넣어주고 start() 메소드를 호출해야 작업 스레드가 실행된다.
다른 방법으로 Thread를 상속받아 작업 스레드를 만들 수 있으며 익명 객체로도 작업 스레드를 만들 수 있다