在与选择过程相同的线程上分配ByteBuffer

时间:2014-06-01 10:19:29

标签: java nio bytebuffer

Selector刚刚告诉我有一个准备就绪的事件。我要做的第一件事是在与我选择的密钥ByteBuffer相同的线程上分配Iterator ...。

如果ByteBuffer足够大(在这种情况下我会使用多达4096个字节)会不会显着减慢我的选择过程?

请讨论直接和基于堆的ByteBuffer s。

1 个答案:

答案 0 :(得分:0)

接受或连接时,您应该为频道分配了一个ByteBuffer。也许两个,一个用于阅读,一个用于写作。您可以通过密钥附件将这些存储为会话变量。为每个选择事件分配一个新的BB是没有意义的。例如,如果您上次只阅读部分消息,该怎么办?