class MyThread extends Thread{
public void run () {
// Thread클래스의 run()을 오버라이딩
}
}
class MyThread2 implements Runnable{
public void run(){
//Runnable 인터페이스의 추상메서드 run()을 구현
}
}
MyThread t1 = new MyThread(); //쓰레드의 생성
t1. start(); //쓰레드의 실행
/////////////////////////////////////////////
Runnable r = new MyThread2();
Thread t2 = new Thread(r); //Thread(Runnable r)
// Thread t2 = new Thread(new MyThread2());
t2.start(); //쓰레드의 실행
ex)
class Ex{
public static void main(String args[])
{
Thread1 t1 = new Thread1();
Runnable r = new Thread2();
Thread t2 = new Thread(r) //생성자 Thread(Runnable target)
t1.start();
t2.start();
}
}
class Thread1 extends Thread{
public void run(){ //쓰레드가 수행할 작업을 작성
for(int i=0; i<5; i++)
{
System.out.println(this.getName());
//조상인 Thread의 getName()을 호출
}
}
}
class Thread2 implements Runnable{
public void run(){
for(int i=0; i<5; i++)
{
System.out.println(Thread.currentThread().getName());
//Thread.currentThread() - 현재 실행중인 Thread를 반환한다.
}
}
}
쓰레드를 생성한 후에 start()를 호출해야 쓰레드가 작업을 시작한다.
Thread1 t1 = new Thread1(); //쓰레드 t1을 생성한다.
Thread2 t2 = new Thread2(); //쓰레드 t2를 생성한다.
t1.start(); //쓰레드 t1을 실행시킨다.
t2.start(); //쓰레드 t2를 실행시킨다.
class ThreadTest{
public static void main(String args[]){
MyThread t1 = new MyThread(); //생성
t1.start(); //실행
}
}
class MyThread extends Thread{
publoc void run(){
// ...쓰레드 구현
}
}