class MyThread implements Runnable
1187 단어 Java 노트
public class MyThread implements Runnable
{
int count= 1, number;
public MyThread(int num)
{
number = num;
System.out.println(" " + number);
}
public void run()
{
while(true)
{
System.out.println(" " + number + ": " + count);
if(++count== 6) return;
}
}
public static void main(String args[])
{
for(int i = 0; i < 5;i++)
new Thread(new MyThread(i+1)).start();
}
}
/*
1
2
1: 1
1: 2
3
1: 3
1: 4
2: 1
1: 5
3: 1
4
3: 2
3: 3
2: 2
3: 4
4: 1
5
4: 2
4: 3
3: 5
2: 3
2: 4
5: 1
4: 4
5: 2
5: 3
5: 4
5: 5
2: 5
4: 5
. . .
*/
엄밀히 말하면 Thread 하위 클래스를 만드는 실례도 가능하지만 주의해야 할 것은 이 하위 클래스는 Thread 클래스를 덮어쓰는run 방법이 없어야 한다는 것이다. 그렇지 않으면 이 라인이 실행하는 것은 하위 클래스의run 방법이 아니라 우리가 Runnable 인터페이스를 실현하는 클래스의run 방법이 될 것이다. 이에 대해 여러분은 시험해 보셔도 무방하다.
Java Runnable 인터페이스를 사용하여 다중 루틴을 실현하면 우리는 하나의 클래스에서 모든 코드를 포용할 수 있고 봉인에 유리하다. 이 인터페이스의 단점은 한 세트의 코드만 사용할 수 있다는 것이다. 만약에 여러 개의 루틴을 만들고 각 루틴이 다른 코드를 실행하려면 클래스를 추가로 만들어야 한다는 것이다. 만약에 이렇게 된다면대부분의 경우 차라리 여러 종류로 Thread를 각각 계승하는 것이 빠를 수도 있다.