"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?"
仅此而已!
我想在 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?"
仅此而已!