쓰레드 싱글 스레드 멀티 쓰레드
Run
package com.kh.part01_threadTest.run;
import com.kh.part01_threadTest.thread.*;
public class Run {
public static void main(String[] args) {
Car car = new Car();
Tank tank = new Tank();
Plane plane = new Plane();
Thread t1 = car;
Thread t2 = tank;
Thread t3 = new Thread(plane);
t1.setPriority(Thread.MAX_PRIORITY);
t3.setPriority(Thread.MIN_PRIORITY);
System.out.println("t1우선순위 : " + t1.getPriority());
System.out.println("t2우선순위 : " + t2.getPriority());
System.out.println("t3우선순위 : " + t3.getPriority());
t1.start();
t2.start();
t3.start();
try {
t1.join();
t2.join();
t3.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("============= main ending");
}
}
Car
package com.kh.part01_threadTest.thread;
//Theard 클래스 상속받아 구현
public class Car extends Thread {
public Car() {}
//메인메소드와 또 다른 흐름을 가지는 메인메소드라고 생각하면 편한다.
@Override
public void run() {
for(int i = 0; i < 1000; i++) {
System.out.println("Car driving...");
try {
Thread.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
Plane
package com.kh.part01_threadTest.thread;
//인터페이스를 상속받는 방법
public class Plane implements Runnable{
@Override
public void run() {
for(int i = 0; i < 1000; i++) {
System.out.println("Plane flight...");
try {
Thread.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
Tank
package com.kh.part01_threadTest.thread;
public class Tank extends Thread {
public Tank() {}
@Override
public void run() {
for(int i = 0; i < 1000; i++) {
System.out.println("Tank driving...");
try {
Thread.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
반응형
'Programming > Java' 카테고리의 다른 글
[Java] GUI(Graphic User Interface) (0) | 2022.03.07 |
---|---|
[Java] IO(입출력) (0) | 2022.03.07 |
[Java] Exception(예외처리) (0) | 2022.03.07 |
[Java] 기본 API (0) | 2022.03.07 |
[Java] 다형성 (0) | 2022.03.07 |
댓글