细说多线程之Thread VS Runnable

来源:互联网 发布:腾道数据 编辑:程序博客网 时间:2024/05/20 16:43

两种方式创建线程

  • 继承Thread
class MyThread extends Thread{    .....    @Override    public void run(){    }}MyThread mt=new MyThread();mt.start();
  • 实现Runnable接口
class MyThread implements Runnable{    ....    @Override    public void run(){    }}MyThread mt=new MyThread();Thread td=new Thread(mt);sd.start();

两者之间的区别

`

  • Runnable方式可以避免Thread方式由于Java`单继承特性带来的缺陷

  • Runnable的代码可以被多个线程(Thread)共享,适用于多个线程处理同一资源的情况

以模拟售卖车票为例

public class ShareThread {    public static void main(String[] args) {        Thread4 t=new Thread4();        Thread t1=new Thread(t,"window1");        Thread t2=new Thread(t,"window2");        Thread t3=new Thread(t,"window3");        t1.start();        t2.start();        t3.start();    }}class Thread4 implements Runnable{    private int ticket=5;    @Override    public  void run() {        while(ticket>0){            System.out.println(ticket--+"is saled by"+Thread.currentThread().getName());        }    }}
原创粉丝点击