Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.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_Sockets - Fatal编程技术网

Java 如果线程打开套接字,主程序退出,会发生什么?

Java 如果线程打开套接字,主程序退出,会发生什么?,java,multithreading,sockets,Java,Multithreading,Sockets,如果线程打开套接字,主程序退出,会发生什么?我有时看到线程会在主程序退出后运行一两秒钟,但是当主程序退出时,线程打开的套接字会关闭吗?或者当线程最终清理自己的内存时?当程序(即JVM进程)停止时,所有资源都会释放。如果进行了System.exit()调用,则JVM将停止。另一方面,如果主线程完成执行,JVM将继续运行,直到不再有非守护进程线程运行。因此,如果处理套接字通信的线程是非守护进程线程,它将继续运行。如果主程序结束,线程将被初步终止。所以他们不能在主程序结束后运行1或2秒 我恳请您阅读一

如果线程打开套接字,主程序退出,会发生什么?我有时看到线程会在主程序退出后运行一两秒钟,但是当主程序退出时,线程打开的套接字会关闭吗?或者当线程最终清理自己的内存时?

当程序(即JVM进程)停止时,所有资源都会释放。如果进行了System.exit()调用,则JVM将停止。另一方面,如果主线程完成执行,JVM将继续运行,直到不再有非守护进程线程运行。因此,如果处理套接字通信的线程是非守护进程线程,它将继续运行。

如果主程序结束,线程将被初步终止。所以他们不能在主程序结束后运行1或2秒

我恳请您阅读一些关于进程间通信的内容,这是计算机系统中进程交换信息的标准方式。您还应该阅读有关进程和线程的内容。您的问题表明,您还不了解线程。这里是一个可以找到的入口点:

<> P>但是,要回答这个问题,JVM使用的是本地C或C++库,这些功能可以在这样的一个男人页面中找到:这些LIB用于直接与操作系统交互

打开绑定到java进程的套接字意味着,只要父进程运行(从用户视图),就会保留该套接字。当一个进程终止时,该进程的所有线程也将终止。但不是套接字,因为这是操作系统中的一个单独进程,由操作系统和JVM处理。JVM将(为您)终止属于调用它们的程序或进程的所有套接字。通过这种方式,JVM将自动调用操作系统来关闭套接字(不要依赖它)。否则将有一个孤立进程作为开放套接字,这被认为是危险的

垃圾收集和调用任务需要一些时间。希望这有点帮助