Sobes.tech
Junior — Middle
98

Пайдаланушы енгізуімен өзара әрекеттесу кезінде операциялардың асинхронды орындалуы қалай жүзеге асырылады?

AI-дан жауап

sobes.tech AI

Python-да асинхронды операцияларды орындау әдетте asyncio модулі арқылы жүзеге асырылады. Блоктау шақыруы input() орнына, негізгі ағынды тоқтатпайтын және басқа тапсырмаларды параллель өңдеуге мүмкіндік беретін асинхронды функцияларды қолдануға болады.

asyncio және aiofiles кітапханасы немесе басқа сыртқы шешімдер көмегімен асинхронды енгізуді қолданудың мысалы (стандартты input() тікелей асинхронды емес болғандықтан):

import asyncio

async def async_input(prompt: str = '') -> str:
    print(prompt, end='', flush=True)
    loop = asyncio.get_event_loop()
    return await loop.run_in_executor(None, input)

async def main():
    name = await async_input('Атыңызды енгізіңіз: ')
    print(f'Сәлем, {name}!')

asyncio.run(main())

Мұнда run_in_executor блоктау функциясы input()-ты бөлек ағында іске қосады, негізгі оқиғалар циклін тоқтатпайды. Осылайша, пайдаланушының енгізуін күтумен қатар басқа асинхронды операцияларды орындауға болады.