2012-04-21 245 views
3

我有以下的Java代码:如何启动不阻塞Java主线程的后台线程?

public static void main(String[] args) 
{ 
    new Thread(new MyRunnable()).run(); 
    showGUI(); 
} 

我的问题是启动MyRunnable块为主线,造成showGUI不叫,直到它完成运行。我想要做的程序是产生MyRunnable,并允许它在后台独立运行,使主线程忘掉它,然后继续做它想做的事情(如致电showGUI)。

回答

9

run在主线程上执行。 start将创建一个新的线程执行并在该线程上执行它的运行方法。

+2

也就是说,'run'只是一个“常规方法”,不会*启动一个线程... – 2012-04-21 06:54:35

5

您应该在线程上调用方法start(),而不是run()