日期:2014-05-20  浏览次数:20624 次

调用exit(0)后一些未关闭的socket会被关闭或超时么?
因为要调用别人的一个组件,但是那个组件有问题,反编译那个组件发现它会创建一个连接,来接收服务器发送来的数据,那个组件有个循环会不断的等待服务端的数据,当网络出问题时,那个循环也没有退出,导致整个系统被他拖死。组件是别人的不太好改,所以准备写一个线程监控这个如果常时间未退出就exit(0)退出整个进程。但是担心如果调用exit(0)会不会导致一些未关闭的socket一直占用端口?windows会自动关闭这些端口么?

------解决方案--------------------
使用完要释放资源是必须的,操作系统替你关闭的时候那就已经出错了。
------解决方案--------------------
端口会不会关闭你每次exit后用netstat -a 看一下,一般程序及时循环也会有catch在里面处理socket.close等的。
------解决方案--------------------
socket.close
------解决方案--------------------
不会 exit(0)方法java虚拟机已经退出了..