Асинхронне програмування.
Основи Python и Django. -> Асинхронне програмування операторів async await.
Асинхронне програмування операторів async await.
Асинхронне виконання це коли одна функція може викликатися багато разів для одночасного виконання.
У цьому наступний виклик не чекає закінчення роботи попереднього.
Функції працюють паралельно, послідовно передаючи управління одне одному.
Розглянемо приклад.
import time
one = [1,2,3,4,5,6]
two = []
print('one = ', one)
print('two = ', two)
def move():
print('Moving')
time.sleep(1)
item = one.pop()
two.append(item)
while len(one) != 0:
move()
print('one = ', one)
print('two = ', two)
Асинхронний варіант.
import time
import asyncio
one = [1,2,3,4,5,6]
two = []
print('one = ', one)
print('two = ', two)
async def move():
item = one.pop()
print('Moving ',item)
two.append(item)
await asyncio.sleep(1)
async def main():
tasks = []
for i in range(0,len(one)):
tasks.append(move())
await asyncio.wait( tasks )
asyncio.run(main())
print('one = ', one)
print('two = ', two)