当我们调用线程对象的start()方法时,该方法会自动调用run方法。这种机制有效吗?
答案 0 :(得分:3)
您的问题不是很明确,但start()
会:
run()
您可以通过继承run()
来指定Thread
方法 的工作,或者(最好)将Runnable()
传递给Thread
构造函数。
答案 1 :(得分:2)
start()
是一种非阻塞操作,这意味着它会立即返回。当你调用它时,它将启动一个新线程(可能使用一些操作系统本机API)。这个新主题将调用run()
。到那时,调用start()
的线程继续运行。
答案 2 :(得分:0)
调用start
会将线程的状态更改为Runnable,这并不意味着将立即调用run
方法中的代码。它只转换到一个状态,其中线程可以由调度程序运行,这可能在调用它时发生,或者在未来的未定义点发生(由调度程序决定)。 p>
是否进行了run方法调用是无关紧要的(文档说它被调用),但无论如何,run
内的第一行代码不能保证立即运行,如果这是你的问题
将start
视为对调度程序的请求,说“请尽可能运行此任务”。