当前位置: 代码迷 >> J2SE >> 为什Java中不能通过java.lang.Thread类来直接创建类Thread的一个对象来创建线程?解决办法
  详细解决方案

为什Java中不能通过java.lang.Thread类来直接创建类Thread的一个对象来创建线程?解决办法

热度:92   发布时间:2016-04-24 00:48:21.0
为什Java中不能通过java.lang.Thread类来直接创建类Thread的一个对象来创建线程??
类Thread

Java code
public class Thread extends Object implements Runnable

构造方法:
Java code
public Thread()public Thread(Runnable target)public Thread(Runnable target,String name)public Thread(String name)

类Thread既不是抽象类也不是接口,那么Java中,为什么只提供两种创建新执行线程有方法:一种方法是将类声明为 Thread 的子类,该子类应重写 Thread 类的 run 方法;另一种方法是声明实现 Runnable 接口的类,该类然后实现 run 方法。难道Thread类不能够直接通过new来创建对象??如:
Java code
Thread thread = new Thread();
来创建对象??

------解决方案--------------------
写一个子类继承Thread类,是为了重写里面的run()方法,也就是线程启动后真正执行的内容。
如果你直接Thread thread = new Thread();创建对象,语法上没有错的,但是run()方法是系统默认的,也不是你自己想定义的线程中的方法,那这个线程有什么意义呢?
------解决方案--------------------
Java code
    /**     * If this thread was constructed using a separate      * <code>Runnable</code> run object, then that      * <code>Runnable</code> object's <code>run</code> method is called;      * otherwise, this method does nothing and returns.      * <p>     * Subclasses of <code>Thread</code> should override this method.      *     * @see     #start()     * @see     #stop()     * @see     #Thread(ThreadGroup, Runnable, String)     */    public void run() {    if (target != null) {        target.run();    }    }
  相关解决方案