이 전내용은 Runnable 인터페이스를 구현받아 쓰레드를 생성했지만 메인 메소드에서 다시 Thread tt1 = new Thread()해서 실행 시켰다.
하지만 이런 방법보다 조금 더 개선된 코드를 구현 할 수가 있다.
예제로 보자.
그리고 항상 자바 API를 보자.
우선 메인 메소드를 보면 이전에는
t1 = new ThreadTest("First Thread", 5);
t2 = new ThreadTest("Second Thread", 5);
다음에
Thread tt1 = new Thread(t1);
Thread tt2 = new Thread(t2);
tt1.start();
tt2.start();
를 생성했었다. 메인 메소드에 소스가 길어 지는건 바람직하지 않으니 지웠다.
그럼 어떻게 run메소드를 호출을 하냐면..
ThreadTest의 생성자를 이용하였다.
Instance variable로 Thread 를 선언하고 costructor에서 Thread를 생성했다.
만약 생성자 안에서
t = new Thread(); 이렇게만 생성하면 코드 실행이 안된다.
왜냐하면 어떤 쓰레드인지 모르기때문이다..
메인 메소드에서 생성했을때도 이 클래스 객체를 아큐먼트로 넘겨 줬다.
그럼 여기서는 어떻게 해야 될까? 당연히 이 클래스의 객체를 넘겨주면 된다. 그것이 바로 this이다..그래서 this를 넣었다. 그럼 잘 돌아간다.
해당 클래스 이름도 쓰레드의 currentThread().getName()메소드를 사용하면 가져 올 수 있다.
'강좌 > JAVA THREAD' 카테고리의 다른 글
자바 쓰레드(Thread) - Runnable을 이용해서 구현 다른 예제 (0) | 2013.04.04 |
---|---|
자바 쓰레드(Thread) - Thread를 이용한 다른 예제 (0) | 2013.04.04 |
자바 쓰레드(Thread) - Runnable을 이용해서 구현 (0) | 2013.04.03 |
자바 쓰레드(Thread) - Thread클래스를 상속받아 구현 (0) | 2013.04.03 |
자바 쓰레드(Thread) - 쓰레드를 구현하는 2가지 방법 (0) | 2013.04.03 |