【发布时间】:2012-03-20 02:14:36
【问题描述】:
我正在编写一个经常需要更改发送/接收消息格式的服务器。当这种情况发生时,服务器应该发送一个通知,通知所有未来的消息都具有新格式,并以旧格式读取所有接收到的消息,直到客户端发送他的 ack。
我考虑保留对所有管道共享的解码器的引用,并根据需要从外部重新配置它。在这种情况下,我担心并发性。
- 我怎样才能确保没有写入由管道处理,而 我在做解码器?
- 以及如何确保通知 重新配置后是否处理了第一条消息?
我看到的唯一另一种方法是通过管道发送“通知”对象(通过使用 channel.write),在解码器中捕获对象并在转发通知消息时进行重新配置。在这种情况下,管道中不应该有任何并发。
- 这会是更好/最先进的方法吗?
【问题讨论】:
标签: concurrency netty