Почему input () блокирует процесс, а io.TextIOBase.readline блокирует только поток? - PullRequest
0 голосов
/ 28 апреля 2020

Я с благодарностью использовал решение для .

Работая над тем же модулем, я также узнал, что input () блокирует весь процесс .

Теперь я хотел бы понять разницу. Я искал ответ здесь и на python .org, например, https://docs.python.org/3/library/io.html#io .TextIOBase .

В ответе о input () , lv c пишет:

Это происходит потому, что чтение из STDIN, как и чтение из любого другого файла-подобного объекта, включает в себя выполнение системного вызова блокировки - то есть блокировка ввода для ожидания ввода пользователя происходит в уровень ОС, а не внутри Python собственного кода управления потоками.

Случай чтения io.TextIOBase.readline из канала также выглядит как системный вызов, читающий объект типа файла. Но это блокирует только поток. python внутренне создает неблокирующее чтение?

В чем разница?

...