According to this passage, IO Multiplexing can work with file descriptors in both blocking and non-blocking mode:

And non-blocking mode is only needed to cooperate with edge-triggered mode:

What's more, according to this answer, Java NIO works in lever-triggered mode.
Then why Java NIO Selector requires the channel to be in the non-blocking mode:

Thanks to your reply in advance.