A NonblockingOutputStream is an OutputStream with nonblocking semantics.
The various write() methods are blocking, while the
nbWrite() methods are nonblocking.
Selectable is an interface which represents an object (such as a socket
or file descriptor) which may be used with the SelectItem and SelectSet
classes.