import asyncio import threading async def count(): print("it's a secret!") await asyncio.sleep(3) async def main(): await asyncio.gather(count(), count(), count()) print("done") def thread_func(): asyncio.run(main()) if __name__ == "__main__": x = threading.Thread(target=thread_func) x.start() x.join()