Во-первых, я думаю, что хотя 10 потоков «работают», на самом деле только один из них активен каждый раз.И переключение контекста происходит для того, чтобы создать эту параллельную иллюзию запуска.
Поэтому только действующий поток может выдать запрос ввода-вывода ядру.Если это блокирует ввод / вывод, да, вся система ожидает ответа ввода / вывода.Если это неблокирующий ввод / вывод, ядро переключится на следующий готовый поток и продолжит выполнение. Только после завершения ввода / вывода генерируется прерывание, информирующее ядро о том, что предыдущий поток может быть снова возвращен в очередь готовности.1003 *
Но интенсивная задача ввода-вывода действительно медленная.