1. Thread클래스를 상속
class MyThread extends Thread {
public void run() { // Thread클래스의 run()을 오버라이딩
/* 작업내용 */
}
}
2. Runnable인터페이스를 구현 - 더 유연함
class MyThread2 implements Runnable {
public void run() { // Runnable인터페이스의 추상메서드 run()을 구현
/* 작업내용 */
}
}
쓰레드의 실행
- 쓰레드를 생성한 후에 start()를 호출해야 쓰레드가 작업을 시작한다.
*start()는 실행가능한 상태가 되는것이지 반드시 실행하는것은 아니다. 언제 실행될지는 OS의 스케줄러가 결정한다. (start 했다고 즉시 실행되거나 먼저 실행되는것이 아니다.)
start()와 run()
run()을 직접 호출하면 그냥 일반적인 메서드 호출이 되어 현재 쓰레드에서 작업이 실행된다. 즉, 새로운 쓰레드가 생성되지 않는다. start()를 호출하면 새로운 쓰레드가 생성되고, 그 쓰레드에서 run() 메서드가 병렬로 실행된다.
→ 병렬로 작업을 처리하고 싶을 때는 반드시 start()를 호출해야한다.
'Programming > 자바(Java)' 카테고리의 다른 글
자바에서 가장 많이 호출되는것은 무엇일까 (0) | 2025.01.10 |
---|---|
13-1 프로세스와 쓰레드 (0) | 2024.10.18 |
12-23 애너테이션이란? (2) | 2024.10.17 |
12-17 열거형 (0) | 2024.10.17 |
12-12 와일드 카드 / 제네릭 메서드 (0) | 2024.10.17 |