W jaki sposób zaimplementowano IO bez blokowania?

W języku Java lub C # lub niektórych innych językach istnieją urządzenia blokujące IO, np. Gniazda.

Mogę więc nadać moim funkcjom zwrotnym nie blokujące IO, a gdy nie blokujące IO otrzyma cokolwiek, wywoła moje wywołania zwrotne.

Zastanawiam się, jak są wdrażane. Jeśli utworzę IO nieblokujące, za sceną, czy Java lub C # po prostu tworzy dla nich wątki w tle? lub system operacyjny bazujący na systemie operacyjnym ma dla nich natywną obsługę?

questionAnswers(1)

yourAnswerToTheQuestion