引读:
上一篇博文中讲了Thread的继承,存在一个问题就是,如果类本身已经继承了某个父类,又要继承Thread,导致多重继承。
【但是我们知道接口是实现多重继承的重要方式】。java提供了Runnable接口。该接口中的方法run(),来实现创建线程。
1 package Test; 2 3 class CTest implements Runnable{ 4 private String idString; 5 public CTest(String string ){ 6 idString = string; 7 } 8 public void run(){ 9 for (int i = 0; i < 4; i++) { 10 for(int j = 0;j<100000000;j++); 11 System.out.println(idString+" is runing"); 12 } 13 } 14 } 15 public class Demo3{ 16 public static void main(String[] args) { 17 CTest dog = new CTest("doggy"); 18 CTest cat = new CTest("kitty"); 19 Thread t1 = new Thread(dog); 20 Thread t2 = new Thread(cat); 21 t1.start(); 22 t2.start(); 23 } 24 }
通过创建的Thread实例对象t1 t2来创建线程。
【通过实现Runnable的方法来实现多线程】
在Runnable接口中并没有start()方法,只有一个run()方法,所以一个类实现了Runnable接口也必须用Thread类中的start()方法来启动多线程。