Java套接字是否支持全双工?

Ton*_*ony 53 java sockets multithreading

是否有可能让一个线程写入OutputStreamJava Socket,而另一个InputStream线程从套接字读取,而线程不必在套接字上同步?

jef*_*unt 47

当然.您描述的确切情况不应该是一个问题(同时读写).

通常,如果没有要读取的内容,读取线程将阻塞,如果指定了超时,读取操作可能会超时.

由于输入流和输出流是Socket中的独立对象,因此您可能唯一关心的是,如果您有2个线程尝试读取或写入(两个线程,相同的输入/输出流),会发生什么?时间?InputStream/OutputStream类的读/写方法不同步.但是,如果您正在使用InputStream/OutputStream的子类,那么您正在调用的读/写方法是同步的.您可以检查javadoc以查找您正在调用的任何类/方法,并快速找到它.


Pau*_*ger 9

是的,那是安全的.

如果您想从InputStream读取多个线程,则必须更加小心(假设您一次读取多个字节).