자바에서 쓰레드(Thread)를 구현하고 실행하는 방법은 크게 두 가지입니다. 하나는 Runnable 인터페이스를 구현하는 방법이고, 다른 하나는 Thread 클래스를 상속하는 방법입니다.
1. Runnable 인터페이스 구현
Runnable 인터페이스를 구현하는 방법은 객체 지향적이며, 다중 상속이 가능합니다. 아래는 간단한 예제입니다.
// Runnable을 구현한 클래스
class MyRunnable implements Runnable {
public void run() {
for (int i = 0; i < 5; i++) {
System.out.println(Thread.currentThread().getId() + " Value " + i);
}
}
}
public class Main {
public static void main(String args[]) {
// Runnable 객체 생성
MyRunnable myRunnable = new MyRunnable();
// Thread 객체 생성 및 시작
Thread thread1 = new Thread(myRunnable);
thread1.start();
Thread thread2 = new Thread(myRunnable);
thread2.start();
}
}
2. Thread 클래스 상속
Thread 클래스를 상속하는 방법은 간단하지만, 다른 클래스를 상속할 수 없는 단점이 있습니다.
// Thread를 상속한 클래스
class MyThread extends Thread {
public void run() {
for (int i = 0; i < 5; i++) {
System.out.println(Thread.currentThread().getId() + " Value " + i);
}
}
}
public class Main {
public static void main(String args[]) {
// Thread 객체 생성 및 시작
MyThread thread1 = new MyThread();
thread1.start();
MyThread thread2 = new MyThread();
thread2.start();
}
}
두 방법 모두 run() 메서드에서 쓰레드가 실행할 코드를 정의합니다. start() 메서드는 운영체제에게 새로운 쓰레드를 생성하고 run() 메서드를 호출하도록 합니다. 결과적으로, 각 쓰레드는 병렬로 실행되며, 출력 순서는 운영체제의 스케줄에 따라 달라집니다.
With ChatGPT
'JAVA > 포스팅' 카테고리의 다른 글
자바 싱글쓰레드 (0) | 2023.11.21 |
---|---|
자바 쓰레드 start()와 run() (0) | 2023.11.21 |
자바 쓰레드(Thread) (0) | 2023.11.21 |
자바 애너테이션 타입 정의하기 (0) | 2023.11.21 |
자바 메타 애너테이션 (0) | 2023.11.21 |