User Tools

Site Tools


python:asyncio

ASYNCIO

Asyncio uses cooperative multitasking to achieve concurrency. When our application reaches a point where it could wait a while for a result to come back, we explicitly mark this in code.

async - let us to define a coroutine.
await - let us pause our coroutine when we have a long-running operation. Blocking operation.

TASKS

Task - wraps a coroutine and schedules it to run on the event loop immediately (in the background). The task starts running as soon as the event loop gets a chance (e.g., when you next await something; await triggers an iteration of the event loop).

Task can be cancelled:

long_task = asyncio.create_task(delay(10))
while not long_task.done():
  long_task.cancel()
 
try:
    await long_task
except CancelledError:
    print("Our task was cancelled")
python/asyncio.txt · Last modified: by v1ctor