线程内部 IO 流关闭的顺序


这样的,在一个线程里面开了 socket
然后用了 socket 的 inputStream 和 outputStream

当设备请求正常关闭时,
我们习惯上应该要先关闭那些资源呢?

比如还有一个 BufferedReader
当调用 reader.close() 的时候,javadoc 有提示会关闭相关的流,也就是会自动关闭 inputStream 么?

之前有写过一个 蓝牙 的工程
有先关闭 线程,后关闭 socket,最后关闭 流 的说法,说这样子不会出现异常,
不巧的是,我照着做的,依然还是有异常。

java 网络编程 线程安全

反叛的舒露露 11 years ago

1,java的流设计,其实是沿用了设计模式中的装饰模式,当调用外层包装流的close()时,其实最里层的inputstream的close也会被调用.

2,先关闭流,再关闭socket.

3,我不明白什么叫"关闭线程",我想你最好先看看有关线程控制方面的书籍.即便有"关闭线程"这个概念,它和socket的操作也完全不在一个层面上,无所谓谁先谁后.

枫海 answered 11 years ago

Your Answer