====== 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")