¿Cómo se implementa Non-Blocking IO?
En Java o C # o en otros lenguajes, existen recursos de IO no bloqueantes, por ejemplo, para sockets.
Así que puedo asignar mis funciones de devolución de llamada al IO sin bloqueo y una vez que el IO sin bloqueo reciba algo, llamará a mis devoluciones de llamada.
Me pregunto cómo se implementan. Si creo un IO sin bloqueo, detrás de la escena, ¿Java o C # simplemente crean hilos de fondo para ellos? ¿O el SO subyacente tiene soporte nativo para ellos?