//Runnable을 구현해서 만드는 스레드(스레드를 생성하는 방법)
class Top implements Runnable{ //Top로 인터페이스 생성 Runnable은 하나의
매소드(run())밖에 없는 인터페이스
public void run(){ //스레드가 동작시 작동하는 부분 start로 호출
for(int i=0; i<10; i++) //
System.out.print(i+"\t"); //
}
}
public class ThreadMain{ //
public static void main(String[] args){ //
System.out.println("프로그램 시작"); //스레드 시작전
Top t = new Top(); //Top형의 객체생성
Thread thd = new Thread(t); // Thread클래스로 스레드를만들때
//Runnable을 구현한 Top형의 객체를 넣어주고 만듬
thd.start(); //run()으로 독립적으로 스레드 동작시킴
System.out.println("프로그램 종료"); //스레드 동작후
}
}
//결과물은 프로그램시작->프로그램 종료->123456789 순서로 나온다 이유는
//프로그램 시작,과 종료가 출력되고난뒤에 스레드 작업이 진행되어서
//main도 하나의 스레드로 동작하다가 다른 스레드를 동작시키고 있어서
라인순으로 진행되지 않았다.
//Thread를 상속하는 스레드 만들기(Thread 상속)
class DerivedThread extends Thread{ //Thread를 직접 상속하는 클래스 생성
public void run(){ //스레드동작시 run의 재정의
for(int i=0; i<10; i++)
System.out.print(i+"\t");
}
}
public class DerivedThreadMain{ //스레드 생성할 클래스생성
public static void main(String[] args){
System.out.println("프로그램 시작"); //스레드 동작전
DerivedThread d = new DerivedThread(); //재정의된 DerivedThread형 객체생성
d.start(); //run동작
System.out.println("프로그램 종료"); //스레드 동작후
}
}
//Thread 클래스를 상속하는 것과 Runnable 인터페이스를 구현해서 하는것에는 큰 차이가 없는데 //인터페이스를 사용해서 하는이유는 내가 만든 클래스가 다른클래스를 상속했을 경우 자바에서는 다중상속이 //불가하기 때문에 Thread를 상속할수 없다 그러므로 인터페이스를 이용하여 Thread를 구현하는 방법을 사용한다.
2 comments:
오...진짜 돌프...ㅋㅋㅋㅋ
이해는 다 한거냐????
ㅎㅎ 이해는 했는데 책을좀더 봐야 완벽하게 이해할꺼 같아여 ㅎ
Post a Comment