主线程:
...
...
子线程()
其中子线程的结构
run(){
while(...){
..=serverSocket.accept();
}
}当在主线程执行System.exit(0)后,出现java.net.SocketException: socket closed异常。
问题应该出在..=serverSocket.accept()部分强行中断而导致该异常。
我想在执行System.exit(0)之前应该终止它的子线程。
其实直接关主线程也没什么关系,只是希望以柔和的方式结束程序,不能对哪怕小异常视之不理。
...
...
子线程()
其中子线程的结构
run(){
while(...){
..=serverSocket.accept();
}
}当在主线程执行System.exit(0)后,出现java.net.SocketException: socket closed异常。
问题应该出在..=serverSocket.accept()部分强行中断而导致该异常。
我想在执行System.exit(0)之前应该终止它的子线程。
其实直接关主线程也没什么关系,只是希望以柔和的方式结束程序,不能对哪怕小异常视之不理。
2.通道我不太明白,怎么设置,能不能说清楚点,给个简单例子?
3.一楼说得比较实在,我如下加了个 try-catch ,问题解决
当然仍期待更好的解决方法,明天来结贴。try {
socket = serverSocket.accept();
} catch (SocketException se) {}if(socket==null) break;