Coroutines

Coroutines Examples

Parallel execution of tasks

Example

import uvio
from datetime import datetime

@uvio.sync
async def display_date():
    end_time = datetime.now() + timedelta(seconds=5)
    while True:
        print(datetime.now())
        if (datetime.now() + timedelta(seconds=5)) >= end_time:
            break
        await uvio.sleep(1)

display_date()

Parallel execution of tasks

Example executing 3 tasks (A, B, C) in parallel:

import uvio

async def factorial(name, number):
    f = 1
    for i in range(2, number+1):
        print("Task %s: Compute factorial(%s)..." % (name, i))
        await uvio.sleep(1)
        f *= i
    print("Task %s: factorial(%s) = %s" % (name, number, f))


loop = uvio.get_default_loop()

loop.next_tick(factorial("A", 2))
loop.next_tick(factorial("B", 3))
loop.next_tick(factorial("C", 4))

loop.run()
loop.close()