为了账号安全,请及时绑定邮箱和手机立即绑定

用extend Thread的方法创建线程和用继承runnable接口的方法创建线程,有什么区别呢?

不是特别理解这两种创建方法之间的关联

正在回答

2 回答

还有一点区别,实现Runnable结构去创建线程类时,可以方便的实现多线程处理类内共享变量。例如:

class MyThread1 implements Runnable{

    private int ticketsCont = 5;    //共享变量

    @Override
    public void run() {
        while(ticketsCont > 0) {
            ticketsCont--;
            System.out.println(Thread.currentThread().getName() + "买了一张票,剩余票数: " + ticketsCont);
        }
    }
}

public class TicketsRunnable {
    public static void main(String[] args) {
        MyThread1 myThread1 = new MyThread1();
        Thread t1 = new Thread(myThread1, "A");
        Thread t2 = new Thread(myThread1, "B");
        Thread t3 = new Thread(myThread1, "C");
        t1.start();
        t2.start();
        t3.start();
    }
}


0 回复 有任何疑惑可以回复我~

没什么区别 , Thread类本质上也是实现了Runnable接口 , 由于类单继承以及接口多继承 , 推荐用Runnable接口 , 因为可能你的类需要继承别的类 , 不管是通过继承类还是实现接口来实现多线程 , 最终都是通过Thread的对象的API来控制线程的

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

用extend Thread的方法创建线程和用继承runnable接口的方法创建线程,有什么区别呢?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信