"new Thread" 不开启新线程?

"new Thread" does not start a new thread?

我想在 new Thread 行执行时启动一个新线程。我是这样做的:

new Thread ( new Runnable() {

@Override
    public void run() {

            .....
    }
}).start();

//other code continues here

当代码到达新的线程行时,它会跳转到执行其他代码。为什么?

好吧,因为新线程几乎立即启动了 运行,并且新线程声明之后的代码正在由同一个先前线程执行。

事情是这样的:

// Main thread running

// Some random code...

new Thread ( new Runnable() {
@Override
public void run() {
    // This code will run in another thread. Usually as soon as start() gets called!
}
}).start();

// This code is still being executed by the main thread.

除了附加调试器之外,检查线程是否真正启动的一种简单方法 运行 是在 run()

中放置一个 Log 语句

很简单:因为你想要发生的事情发生了!

您使用 new() 创建了一个新线程,并且因为您立即对该对象调用了 start(),所以该作业开始做的工作。

您的主线程继续其 "main" 工作。就像:你拍了拍你朋友的肩膀(示意他:开始运行)——现在你在问:"why is he gone?"

仅此而已!