Java 线程objectoutputstream objectinputstream阻塞未读取

Java 线程objectoutputstream objectinputstream阻塞未读取,java,concurrency,objectoutputstream,objectinputstream,concurrenthashmap,Java,Concurrency,Objectoutputstream,Objectinputstream,Concurrenthashmap,我的代码有问题;看起来相当简单的对象写入和读取操作,似乎永远不会触发其辅助操作。远程对等机上的内部类线程通过OOS发送ConcurrentHashMap 当它到达时,接收代码继续,在一个布尔确定的循环中,在OIS上侦听CCHM的更新。这些更新来自发送原始CCHM的人的兄弟姐妹(每个接收对等点有一个服务兄弟姐妹)。这些同级使用的ObjectOutputStreams来自同级的可见HashMap。兄弟姐妹们不在乎他们是将邮件发送给团队的新成员,还是发送给现有成员。对等方是新的还是现有的差异仅在接收对

我的代码有问题;看起来相当简单的对象写入和读取操作,似乎永远不会触发其辅助操作。远程对等机上的内部类线程通过OOS发送
ConcurrentHashMap

当它到达时,接收代码继续,在一个布尔确定的循环中,在OIS上侦听CCHM的更新。这些更新来自发送原始CCHM的人的兄弟姐妹(每个接收对等点有一个服务兄弟姐妹)。这些同级使用的
ObjectOutputStreams
来自同级的可见
HashMap
。兄弟姐妹们不在乎他们是将邮件发送给团队的新成员,还是发送给现有成员。对等方是新的还是现有的差异仅在接收对等方知道,在接收对等方接收并使用原始CCHM,然后代码继续等待同一OIS上的更新。加入的新对等方将其详细信息添加到远程的
哈希表中
,因此每次发送给所有对等方时,要发送的CCHM都要大一个元素(新的,加上n个现有的)

但是现有的对等方没有收到更新的CCHM。与其用
System.out.println()
调用填充我的代码,或者粗暴地停止它,我可能忽略了在这种混乱中遇到的哪些陷阱?

请参阅规范以了解

重置将忽略已写入流的任何对象的状态。该状态被重置为与新的ObjectOutputStream相同。流中的当前点标记为重置,因此相应的ObjectInputStream将在同一点重置。以前写入流的对象将不会被引用为已在流中。它们将再次写入流中


你能给我一些代码吗?我能说什么,但ufff-这是一个准确有效的答案吗。非常感谢你!