Лучшие практики NIO - SelectableChannel и InterestOps

использование java.nio нужно зарегистрировать интерес к операциям через SelectableChannel:

SelectionKey = SelectableChannel.register(selector, interestInOpsBitmask)

Регистрация интереса:

  • перезапись существующего SelectionKey путем выполнения SelectableChannel.register с новой операцией в секунду
  • VS. обновление существующего SelectionKey с key.interestOps (key.interestOps () | newOp)

Нерегистрация интереса:

  • SelectionKey.cancel и SelectableChannel.register с новой операцией в секунду
  • VS. обновление существующего SelectionKey как вышеупомянутый

Есть ли какие-либо профессионалы и недостатки?

Спасибо

5
задан hotzen 21 May 2010 в 08:02
поделиться

1 ответ

Я бы обновил существующие InterestOps с помощью оператора or, как вы предлагаете. Я был бы обеспокоен отсутствием выбора, если бы (временно) отменил клавишу выбора.

Кроме того, отмена + перерегистрация кажется более сложной задачей, чем обновление.

Если у вас нет основополагающей логической причины для регистрации в новых операциях, я бы посоветовал всегда использовать обновление.

3
ответ дан 14 December 2019 в 13:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: