if uuid in g_storage_locks:
print('LOCK FOUND')
return g_storage_locks[uuid]
print(f'NEW LOCK {uuid}')
g_storage[uuid] = Lock()
return g_storage[uuid]
async def task(name):
lock = storage_lock('test1')
async with lock:
print(f'try {name}')
for i in range(5):
print(f'{name} {i} 1s')
await asyncio.sleep(1)
async def main():
t1 = task('task A')
t2 = task('task B')
await asyncio.gather(t1, t2)
if __name__ == '__main__':
asyncio.run(main())
------------------------------------------
NEW LOCK test1
try task A
task A 0 1s
NEW LOCK test1
try task B
task B 0 1s
task A 1 1s
task B 1 1s
task A 2 1s
task B 2 1s
task A 3 1s
task B 3 1s
task A 4 1s
task B 4 1s
Зачем ты в одной части используешь import asyncio, а в другой импортируешь Lock?
Кстати, это же для учебных целей? 👀
для личных
Обсуждают сегодня