如果有多个Java线程同时写入同一套接字实例,是否会影响从同一套接字读取的对象的完整性?也就是说,对象的内容是否会被弄乱等等。对象的顺序是随机的。
发布于 2012-11-25 05:03:19
一般来说,这是没有保证的。不同对象的比特很可能最终在网络上交错,导致结果无法辨别。因此,您需要提供外部同步。
有趣的是,即使是在操作系统级别的单个套接字写入也不一定是原子的。有关详细讨论,请参阅Is it safe to issue blocking write() calls on the same TCP socket from multiple threads?和Be careful with the sendmsg() family of functions。
发布于 2012-11-25 05:21:11
如果有多个Java线程同时向同一套接字实例写入,则为
您将从多个线程写入相同的OutputStream
。
是什么让你认为没有同步是个好主意?如果您开始从多个线程同时写入一个文件,而没有同步,您会期望该文件包含任何有意义的内容吗?
https://stackoverflow.com/questions/13545578
复制相似问题