zoukankan      html  css  js  c++  java
  • java 多线程 继承Thread和实现Runnable的区别

    1)继承Thread:

    public class ThreadTest extends Thread
    {
    private int count;
    private String name;

    public ThreadTest(int count,String name){
    this.count = count;
    this.name = name;
    }

    public void run()
    {
    while(count>0)
    {
    System.out.println(name+"买票 "+count--);
    }
    }

    public static void main(String []args)
    {
    ThreadTest t1 = new ThreadTest(10,"1号窗口");
    ThreadTest t2 = new ThreadTest(10,"2号窗口");
    t1.start();
    t2.start();
    }
    }

    运行结果:

    1号窗口买票 10
    1号窗口买票 9
    1号窗口买票 8
    2号窗口买票 10
    1号窗口买票 7
    2号窗口买票 9
    1号窗口买票 6
    2号窗口买票 8
    1号窗口买票 5
    2号窗口买票 7
    1号窗口买票 4
    2号窗口买票 6
    1号窗口买票 3
    2号窗口买票 5
    1号窗口买票 2
    2号窗口买票 4
    1号窗口买票 1
    2号窗口买票 3
    2号窗口买票 2
    2号窗口买票 1

    2)实现Runnable接口

    public class hello implements Runnable{

    private int ticket=19;

    @Override
    public void run() {
    for(int i=0;i<20;i++){
    if(this.ticket >0){
    System.out.println(Thread.currentThread().getName()+"正在买票"+this.ticket--);
    }
    }
    }

    public static void main(String[] args){
    hello h1 = new hello();
    new Thread(h1,"3号窗口").start();
    new Thread(h1,"1号窗口").start();
    new Thread(h1,"2号窗口").start();

    }

    }

    运行结果:

    1号窗口正在买票19
    2号窗口正在买票18
    3号窗口正在买票19
    2号窗口正在买票16
    1号窗口正在买票17
    2号窗口正在买票14
    3号窗口正在买票15
    2号窗口正在买票12
    1号窗口正在买票13
    2号窗口正在买票10
    3号窗口正在买票11
    2号窗口正在买票8
    1号窗口正在买票9
    2号窗口正在买票6
    3号窗口正在买票7
    2号窗口正在买票4
    1号窗口正在买票5
    2号窗口正在买票2
    3号窗口正在买票3
    1号窗口正在买票1

    从上面的运行结果可以看出:继承Thread实现的模式是  定义多个线程,各自完成各自的任务.  实现Runnable实现的模式是  定义多个线程,实现一个任务.

    其实在实现一个任务用多个线程来做也可以用继承Thread类来实现只是比较麻烦,一般我们用实现Runnable接口来实现,简洁明了。

    大多数情况下,如果只想重写 run() 方法,而不重写其他 Thread 方法,那么应使用 Runnable 接口。

     

  • 相关阅读:
    二维码生成器
    uniapp 上下左右手势滑动时的事件
    uniapp 类似钉钉的消息时间段显示
    css 币种与价格的底部对齐
    css 设置父元素透明度不影响子元素透明度
    js match方法截取某个字符串前面的内容
    下载电脑系统,服务等...
    uniapp 实现点击、滑动切换tab导航内容
    vue 实现分类渲染数据
    jquery 实现在事件完成后才能再次点击执行
  • 原文地址:https://www.cnblogs.com/jpfss/p/9436185.html
Copyright © 2011-2022 走看看