Runnable 생성, 변환, 출력
// 1. 멀티 스레드 동작 클래스 정의
class SimpleThread2 implements Runnable{
String msg; // ???
public SimpleThread2(String msg) {
this.msg = msg;
}
// 1-2. run overriding
// st1 시작, st2 시작 동시에 실행, 두개 멀티스레드 객체 생성
public void run(){
for(int i=1;i<=10;i++){
System.out.println(i+"번째 출력 "+msg);
}
}
}
public class ThreadTest1 {
public static void main(String[] args) {
// 2. Runnable 타입 (하위) 객체 2개 생성
SimpleThread2 st1 = new SimpleThread2("One");
SimpleThread2 st2 = new SimpleThread2("Two");
// 3. Thread 객체 변환 (생성)
Thread t1 = new Thread(st1);
Thread t2 = new Thread(st2);
t1.start(); // st1.run 수행
t2.start(); // st2.run 수행
System.out.println("메모리 종료");
// 추측하면 가장 나중에 출력되어야 하지만 가장 먼저 출력한다.
// st1.run(); // 싱글스레드 방식
// st2.run();
}
}