<기록용>
스레드 실행 방법 3가지 공부
// 1. Thread를 상속받으면 MultiThread로 사용가능
//run() override 구현하고 start()로 실행
public class DigitThread extends Thread{
@Override
public void run() {
for(int i=1;i<=26;i++) {
System.out.println(currentThread().getName()+"쓰레드:"+ i);
}
}
}
Thread를 상속받으면 두번째 클래스는 상속이 불가능하기 때문에 interface를 구현함.
// 2. Runnable interface를 구현하여 Thread 생성하면 MultiThread로 사용가능
//run() override 구현하고 start()로 실행
class Parent{
}
public class LowerCaseRunnable extends Parent implements Runnable{
@Override
public void run() {
for(char i='a';i<='z';i++) {
System.out.println(Thread.currentThread().getName()+"쓰레드:"+ i);
}
}
}
public class ThreadExample1 {
public static void main(String[] args) {
System.out.println(Thread.currentThread().getName()+"쓰레드 시작");
//멀티Thread를 사용하기
DigitThread t1 = new DigitThread();
LowerCaseRunnable lower = new LowerCaseRunnable();
Thread t2 = new Thread(lower);
Thread t3 = new Thread() {
public void run() {
for(int i=1;i<=3;i++) {
System.out.println(currentThread().getName() + i + ": run을 재정의함");
try {
sleep(1);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
};
t1.setName("쓰레드1번(DigitThread)");
t2.setName("쓰레드2번(LowerThread)");
t3.setName("쓰레드3번(Thread익명구현)");
t1.start();
t2.start();
t3.start();
for(char ch = 'A';ch<='Z';ch++) {
System.out.println(ch);
try {
Thread.sleep(1);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
System.out.println();
System.out.println(Thread.currentThread().getName()+"쓰레드 종료");
}
}'Java' 카테고리의 다른 글
| Servlet이랑 jsp (0) | 2026.06.24 |
|---|---|
| 자바 jdbc로 미니 프로젝트 (0) | 2026.06.16 |
| 제네릭 (0) | 2026.06.01 |
| 이것이 자바다 연습문제 Chap12 (0) | 2026.06.01 |
| 참조형 변수 (1) | 2026.05.19 |