如何启动不阻塞Java主线程的后台线程?

Xåp*_* - 4 java concurrency multithreading blocking runnable

我有以下Java代码:

public static void main(String[] args)
{
    new Thread(new MyRunnable()).run();
    showGUI();
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,启动MyRunnable阻塞主线程,导致showGUI在完成运行之前不会被调用.我有什么喜欢的节目做的是产卵MyRunnable,并允许它在后台独立运行,使主线程忘掉它,继续前进,做它想要的东西(如呼叫showGUI).

Joh*_*int 15

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

  • 也就是说,`run`只是一个"普通方法"并且*不*启动一个线程...... (3认同)

Ale*_*man 9

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