更好的MyThread类技术

时间:2013-04-18 07:01:55

标签: java multithreading

更好的帖子:"implements Runnable" vs. "extends Thread"

我可以用两种方式创建自己的线程类MyThread,

class MyThread extends Thread
or
class MyThread implements Runnable

哪种技术更好,为什么?

在实现Runnable的情况下,我必须从MyThread对象创建Thread对象,比如

MyThread mt = new MyThread();
Thread t = new Thread(mt);

那么实现Runnable Interface技术的优势是什么?

3 个答案:

答案 0 :(得分:3)

创建实现Runnable接口的线程更好。因为您可以从其他类扩展新类,否则无法扩展它。

答案 1 :(得分:0)

如果要保留对线程工作的某些控制,如调用interrup(),则扩展线程会更好。一般来说,当课程是某种管理员或工人时,我会说扩展Thread是可以的。

在其他情况下,特别是当一个类代表一些工作要做(JobFuture)时,实施runnable 要好得多。

答案 2 :(得分:0)

  

在实现Runnable的情况下,我必须创建Thread对象   来自MyThread对象,如

MyThread mt = new MyThread();
Thread t = new Thread(mt);

非必要

你可以这样做......

Thread t = new Thread(new Runnable () { public void run() { /* do stuff */ }});

......不需要MyThread课程。