首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

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

2012-06-13 
为什Java中不能通过java.lang.Thread类来直接创建类Thread的一个对象来创建线程??类ThreadJava codepublic

为什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();    }    } 

热点排行