Java Serializable,ObjectInputstream,非阻塞I/O.

Mik*_*ike 7 java serialization asynchronous nio

我刚刚开始使用Java序列化,而且我不清楚如何在具有非阻塞I/O的场景中从源中获取对象.

我能找到的所有文档建议使用ObjectInputStream是读取序列化对象的正确方法.但是,正如我所提到的,我正在使用java.nio并执行非阻塞操作.如果readObject()将阻塞,直到有新对象可用,这对我没有帮助

总结..在使用Java NIO时如何进行序列化?

Mik*_*ike 4

将序列化的实例包装在报告有效负载长度的协议中,有效负载就是相关的实例。然后,一旦您知道您有一个代表完整实例的段,您就可以安全地使用 ObjectInputStream 并知道它不会阻塞。

像这样的协议 前 32 位:有效负载长度 有效负载长度位:序列化数据

有时连我自己都感到惊讶。