### 非同期処理とは?
あるタスクが終了するのを待っている間、別のタスクを実行すること
$ pip3 install aiohttp
import datetime import aiohttp import asyncio start = datetime.datetime.now() def log(message): print(f'{(datetime.datetime.now() - start).seconds}秒経過', message) async def fetch(session, url): """ 非同期にURLからデータを取得 """ print(f"Fetching {url}") async with session.get(url) as response: return await response.text() async def main(): log("タスク開始") urls = [ "http://google.com", "http://qiita.com", "https://www.python.org/", "https://www.mozilla.org/en-US/", "https://html.spec.whatwg.org/multipage/", "https://www.w3.org/TR/css/", "https://ecma-international.org/", "https://www.typescriptlang.org/", "https://www.oracle.com/jp/java/technologies/", "https://www.ruby-lang.org/ja/", "https://www.postgresql.org/", "https://www.mysql.com/jp/", "https://docs.djangoproject.com/ja/5.0/", "https://spring.pleiades.io/projects/spring-boot", "https://rubyonrails.org/" "https://firebase.google.com/?hl=ja", "https://go.dev/", "https://nodejs.org/en" ] async with aiohttp.ClientSession() as session: tasks = [fetch(session, url) for url in urls] print("Starting tasks...") print("Tasks are running in the background...") results = await asyncio.gather(*tasks) for result in results: print(result[:100]) log("task finished") if __name__ == "__main__": asyncio.run(main())