创建多线程的方式一:通过继承方式
创建多线程的方式二:通过实现方式
二者比较:
1 联系:public class Thread implements Runnable
2 实现方式好:1)避免java单继承的局限性
2)如果多个线程要操作同一份资源(或数据),更适合使用实现的方式
package lianxi1; //方式一:继承方式创建多线程 class Window extends Thread{ static int ticket = 100; public void run(){ while(true){ if(ticket>0){ System.out.println(Thread.currentThread().getName()+" "+ticket--); } else{ break; } } } } public class TestThreadWindow { public static void main(String[] args){ Window w1 = new Window(); Window w2 = new Window(); Window w3 = new Window(); w1.setName("窗口1"); w2.setName("窗口2"); w3.setName("窗口3"); w1.start(); w2.start(); w3.start(); } }
package lianxi1; //方式二:实现方式创建多线程 class Window2 implements Runnable{ private int ticket = 100; //不用static,只创建一个对象 public void run(){ while(true){ if(ticket>0){ System.out.println(Thread.currentThread().getName()+"售票号码 :"+ticket--); } else{ break; } } } } public class TestThreadWindow2 { public static void main(String[] args) { Window2 w2 = new Window2(); Thread t1 = new Thread(w2); //将Runnable实现类对象作为形参传人Thread构造器,执行start方法 Thread t2 = new Thread(w2); Thread t3 = new Thread(w2); t1.setName("窗口1"); t2.setName("窗口2"); t3.setName("窗口3"); t1.start(); t2.start(); t3.start(); } }