메인스레드
시작될 때 자동으로 생성되는 가장 첫 번째 스레드
JVM(Java Virtual Machine)이 프로그램을 실행할 때:
- JVM 프로세스 시작
- 운영체제가 JVM 프로세스용 메인 스레드 생성
- JVM이 자바 코드의 main()을 메인 스레드에 연결
- main() 내부 코드 실행 시작
public static void main(String[] args) {
System.out.println("시작");
Thread currentThread = Thread.currentThread();
System.out.println(currentThread.getName()); // 출력 : main
System.out.println("종료");
}
작업 스레드
멀티스레드로 실행하는 프로그램에서 병렬로 몇개의 작업을 실행할지 결정하고 각 작업별로 스레드를 생성해야 한다.
1. Thread 클래스로 직접 생성하는 방법
Thread thread = new Thread(Runnable target);
// thread.start()를 통해 실행가능
//아래와 같이 Runnable을 구현가능하다. Task라는 클래스는 매개변수로 갈 수 있게된다.
class Task implements Runnable {
@Override
public void run(){
//thread 실행코드
}
}
Runnable task = new Task();
Thread thread = new Thread(task);
// 또는 아래와 같이 익명구현객체를 통해 구현가능
Thread thread = new Thread(new Runnable(){
@Override
public void run(){
//쓰레드가 실행할 코드
}
});
2. Thread 자식 클래스로 생성
public class WorkerThread extends Thread {
@Override
public void run(){
//쓰레드가 실행할 코드
}
}
Thread thread = new WorkerThread();
//또는 아래와 같이 정의가능
Thread thread = new Thread(){
@override
public void run(){
//실행코드
}
}