Java 哪个线程正在调用该行?
我试图学习线程,这让我思考。 请看一看以下内容:Java 哪个线程正在调用该行?,java,multithreading,Java,Multithreading,我试图学习线程,这让我思考。 请看一看以下内容: public static void main(String [] args) { // line 1 Thread exampleThread = new Thread() { // line 2 public void run() { // line 3 //some code // line 4 ....
public static void main(String [] args) { // line 1
Thread exampleThread = new Thread() { // line 2
public void run() { // line 3
//some code // line 4
........... // line 5
........... // line 6
} // line 7
}; // line 8
// line 9
// Which thread invokes this line? // line 10
exampleThread.start(); // line 11
// line 12
// Which thread invokes this line? // line 13
exampleThread.join(); // line 14
} // line 15
我认为main线程调用第11行
但是第14行呢?哪个线程正在调用它Main或示例线程?你能解释一下吗?主线程也会调用
exampleThread.join()
它所做的是阻止调用线程(这里的主线程),直到另一个线程(exampleThread
)完成
通常,指令序列总是由同一线程执行。另一个线程无法跳入并接管(但有可能多个线程同时运行相同的指令序列,即使在同一个对象实例上也是如此)。它们都是由同一个“调用”线程执行的。调用线程启动exampleThread,通过调用join将等待它完成-您正在阻止调用线程,直到exampleThread完成。您可以在启动线程之前打印系统时间,然后在示例中线程逻辑睡眠2秒,然后在最后再次打印超时,您应该看到调用线程被阻塞2秒,而不是因为调用了join而立即返回。