LINUX.ORG.RU

История изменений

Исправление alpha, (текущая версия) :

подробности: https://stackoverflow.com/questions/49005651/how-does-asyncio-actually-work

Вроде то что надо, но очень много букв, потом ещё повнимательнее почитаю.

Получается что asyncio не использует потоки, всё выполняется в одном. Выигрыш просто за счёт продвинутой логики что именно ставить на паузу в данный момент.

При этом с I/O получается так что мы можем проверить готов ли сокет для чтения перед тем как пытаться его читать, и потому можем откладывать чтение, если сокет не готов.

Что меня всё время путает - это фразы такого типа

Select is a blocking function, implemented by the operating system underneath, that allows waiting on sockets for incoming or outgoing data. Upon data being received it wakes up, and returns the sockets which received data, or the sockets whom are ready for writing.

Socket is a ... function ... it wakes up

Если там один поток и что-то поставлено на паузу, то функция не может просыпаться. Это event loop должен в какой-то момент про неё вспомнить, придти, проверить какой-то флаг и её «проснуть». Так ведь?

Исходная версия alpha, :

подробности: https://stackoverflow.com/questions/49005651/how-does-asyncio-actually-work

Вроде то что надо, но очень много букв, потом ещё повнимательнее почитаю.

Получается что asyncio не использует потоки, всё выполняется в одном. Выигрыш просто за счёт продвинутой логики что именно ставить на паузу в данный момент.

При этом с I/O получается так что мы можем проверить готов ли сокет для чтения перед тем как пытаться его читать, и потому можем откладывать чтение, если сокет не готов.

Что меня всё время путает - это фразы такого типа

Select is a blocking function, implemented by the operating system underneath, that allows waiting on sockets for incoming or outgoing data. Upon data being received it wakes up, and returns the sockets which received data, or the sockets whom are ready for writing.

Socket is a ... function ... it wakes up

Если там один поток и что-то поставлено на паузу, то это что-то не может просыпаться. Это event loop должен в какой-то момент про неё вспомнить, придти, проверить какой-то флаг и её «проснуть». Так ведь?