java - 如果一个线程打开一个套接字并且主程序退出会发生什么?

标签 java multithreading sockets

<分区>

如果一个线程打开一个套接字并且主程序退出会发生什么?我有时看到线程会在主程序退出后运行一两秒,但线程打开的套接字是否会在主程序退出时关闭,或者当线程最终清理自身并死亡时?

最佳答案

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

关于java - 如果一个线程打开一个套接字并且主程序退出会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23247443/

相关文章:

java - 如何在Java中保存iso8601日期?

java - 在 springboot 中使用 Autowiring 获取 NullpointerException (奇怪的场景)

multithreading - 如何卡住 Rc 数据结构并跨线程发送它

ruby - Thin 中的用户线程,Heroku 上的 Sinatra 应用程序

python - 实时 Bokeh 套接字python

apache - 访问服务器外部的localhost

java - iOS 推送通知不起作用

java - 创建给定 Paint 的半透明版本

java - 在同一个线程上调用 start 方法两次是否合法?

c - 接收数据时触发函数的套接字