2011-08-22 66 views

回答

3

在java中,run()注册线程调度程序中的线程吗?

否。如果您直接调用run()方法,则将其称为常规方法;即它在当前线程上运行,而不是新线程。

什么结构(),start()和寄存器()

start方法创建一个新的线程,并在这个过程中的线程将与调度程序进行注册。 (然而,调度器在Java中是一个模糊的概念,它暗示着必须存在,但它的实现和行为通常留给主机操作系统,纯Java程序几乎不能控制线程调度器实际上的方式作品)。

Thread API中没有construct()register()方法。如果您指的是Thread构造函数,则它们只会创建Thread对象,而不是将执行此工作的底层线程。后者仅在调用start()时创建。

1

run()是线程中的实际代码;所以你可以做这样的:

Thread childThread = new Thread() { 
    public void run() { 
     // do stuff on a new thread 
    } 
}; 

(虽然我一直在这样的扩展Thread说是丑陋;)

所以调用运行()本身不会产生一个新的线程。要做到这一点,您可以使用start()方法:

childThread.start(); 

所以,我想它确实给调度一个新的线程来处理 - 但那是在操作系统级别一路下滑。

虽然我不确定你的意思是construct()register()