What is non-blocking I/O in Java?
Non-blocking I/O allows threads to continue executing other tasks while waiting for I/O operations, such as file or network reads/writes, to complete.
Exactly! Non-blocking I/O allows threads to perform other work instead of waiting for I/O operations to finish.
Can you explain how `java.nio.channels.SocketChannel` supports non-blocking I/O for network communication?