类T1和T2都实现了Runnable接口。并且在主方法中都进行了实例化。但是不能直接用其实例化的对象调用run方法!无论如何都需要调用start()方法。
那我们则需要实例化一个Thread对象,将两个是实现Runnbale接口的实例化对象加入到Thread。再通过Thread实例化的对象进行调用start()方法!
package thread_;
public class ThreadMany {
public static void main(String[] args) {
T1 t1 = new T1();//实例化T1对象
T2 t2 = new T2();
Thread thread1 = new Thread(t1);//在创建Thread对象时,将实现了Runnable接口的对象作为参数传递
Thread thread2 = new Thread(t2);
thread1.start();//调用start()方法
thread2.start();
}
}
class T1 implements Runnable{//实现了Runnable接口
int count = 0;
@Override
public void run() {//重写run方法
while(true){
System.out.println("T1输出"+(++count)+" "+Thread.currentThread().getName());
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
if (count == 10){
break;
}
}
}
}
class T2 implements Runnable{//实现了Runnable接口
int count = 0;
@Override
public void run() {//重写run方法
while(true){
System.out.println("T2输出"+(++count)+" "+Thread.currentThread().getName());
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
if (count == 10){
break;
}
}
}
}
输出的结果是交替进行的