Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 哪个线程正在调用该行?_Java_Multithreading - Fatal编程技术网

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而立即返回。