Java 如果子进程正在运行,那么父进程将如何完成?

Java 如果子进程正在运行,那么父进程将如何完成?,java,multithreading,Java,Multithreading,我在实现线程时遇到了一个疑问,所以我想在取得一些进展之前先把它清除掉。我有一个调用新线程的方法,在下一行我有一个return语句 方法(){ 调用线程() 返回语句 } 这里发生了什么?我的意思是父进程是否在子进程之前完成 java中的“调用线程();”是thread.start() 所有线程都在同一个java进程中运行 不,线程不需要在return语句发生之前完成 请看这篇文章 您需要使用join方法。在父线程完成之前,您必须等待子线程完成。您似乎混淆了线程和进程的概念。Java程序在Jav

我在实现线程时遇到了一个疑问,所以我想在取得一些进展之前先把它清除掉。我有一个调用新线程的方法,在下一行我有一个return语句

方法(){

调用线程()

返回语句

}

这里发生了什么?我的意思是父进程是否在子进程之前完成

  • java中的“调用线程();”是thread.start()
  • 所有线程都在同一个java进程中运行
  • 不,线程不需要在return语句发生之前完成

  • 请看这篇文章


    您需要使用
    join
    方法。在父线程完成之前,您必须等待子线程完成。

    您似乎混淆了线程和进程的概念。Java程序在Java虚拟机中运行。此JVM是一个进程(可在操作系统的任务管理器中查看)。一个进程可以“包含”多个进程。有关这方面的更多信息,请阅读

    为了回到您的问题,代码生成一个新线程并返回。线程实际执行的操作与调用方法无关。您询问父进程是否在子进程之前完成?那要看情况了。新线程做什么?如果速度很快,那么可能不会。它们“并行”运行,这就是我们首先使用线程的原因。所以你不应该把你的逻辑建立在什么先完成的基础上

    想象一下你打电话给你的朋友,让他处理一些事情。在你给他打电话后,你继续做其他事情。电话成功了,你继续你的一天。你的朋友是你的新线索。也许你想晚些时候检查一下一切是否正常,但你不会等他来处理电话。如果不使用线程,情况就是这样

    如果您对java并发性很认真,我强烈推荐您