首页 > 代码库 > 多线程2

多线程2

创建多线程的方式一:通过继承方式

创建多线程的方式二:通过实现方式

二者比较:

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();    }}

多线程2