Java NIO Selectors

Olá, estou tentando utilizar o java nio + socket mas não estou entendo o porque e como funciona os selectors (OP_READ,OP_WRITE e OP_ACCEPT) alguem poderia me auxiliar. Gostaria de saber:

  • como funciona, qual a ideia …
  • e porque da utilização?? com exemplo se possivel