import time def async_func(): for i in range(10): time.sleep(0.5) print(f"非同期処理 python async_func {i}") def main(): print("==== start ====") work_thread = threading.Thread(target=async_func) work_thread.start() for i in range(5): time.sleep(1) print(f"非同期処理 python main_func {i}") work_thread.join() main() import asyncio import time import warnings warnings.filterwarnings('ignore') async def async_func(): asyncio.sleep(0) for i in range(10): time.sleep(0.5) print(f"非同期処理 python single async_func {i}") async def main(): print("==== start ====") async_task = asyncio.create_task(async_func()) for i in range(5): time.sleep(1) print(f"非同期処理 python single main_func {i}") asyncio.run(main()) スレッドを利用(マルチスレッド) asyncを利用(シングルスレッド)