import asyncio
import threading
def ask(q):
async def put_to_q(q, elem):
await q.put(elem)
while True:
res = input('Enter data: ')
asyncio.run(put_to_q(q, res))
async def produce(q):
while True:
elem = await q.get()
print(f'Processing {elem} ...')
await asyncio.sleep(3)
print(f'{elem} done')
async def main():
queue = asyncio.Queue()
print('Main started')
t = threading.Thread(target=lambda: ask(queue))
t.start()
await produce(queue)
if __name__ == '__main__':
asyncio.run(main())
aW1wb3J0IGFzeW5jaW8KaW1wb3J0IHRocmVhZGluZwoKCmRlZiBhc2socSk6CiAgICBhc3luYyBkZWYgcHV0X3RvX3EocSwgZWxlbSk6CiAgICAgICAgYXdhaXQgcS5wdXQoZWxlbSkKCiAgICB3aGlsZSBUcnVlOgogICAgICAgIHJlcyA9IGlucHV0KCdFbnRlciBkYXRhOiAnKQogICAgICAgIGFzeW5jaW8ucnVuKHB1dF90b19xKHEsIHJlcykpCgoKYXN5bmMgZGVmIHByb2R1Y2UocSk6CiAgICB3aGlsZSBUcnVlOgogICAgICAgIGVsZW0gPSBhd2FpdCBxLmdldCgpCiAgICAgICAgcHJpbnQoZidQcm9jZXNzaW5nIHtlbGVtfSAuLi4nKQogICAgICAgIGF3YWl0IGFzeW5jaW8uc2xlZXAoMykKICAgICAgICBwcmludChmJ3tlbGVtfSBkb25lJykKCgphc3luYyBkZWYgbWFpbigpOgogICAgcXVldWUgPSBhc3luY2lvLlF1ZXVlKCkKICAgIHByaW50KCdNYWluIHN0YXJ0ZWQnKQogICAgdCA9IHRocmVhZGluZy5UaHJlYWQodGFyZ2V0PWxhbWJkYTogYXNrKHF1ZXVlKSkKICAgIHQuc3RhcnQoKQogICAgYXdhaXQgcHJvZHVjZShxdWV1ZSkKCgppZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgogICAgYXN5bmNpby5ydW4obWFpbigpKQ==