Python の同時プログラミング モデルとは何ですか? - コード例
現代のコンピューター システムでは、通常、同時に実行される複数のタスクを処理する必要があります。同時プログラミングは、プログラムが複数のタスクを同時に処理できるようにするプログラミング モデルです。 Python にはさまざまな同時プログラミング モデルが用意されており、この記事ではそのいくつかを紹介し、対応するコード例を示します。
スレッドは、同じプロセス内で実行し、同じリソースを共有できる軽量の実行ユニットです。 Python では、threading
モジュールを使用してスレッドを作成および管理できます。
import threading import time def task(): print("Thread is running...") time.sleep(2) print("Thread is done.") if __name__ == "__main__": thread = threading.Thread(target=task) thread.start() print("Main thread is running...") thread.join() # 等待子线程运行完毕 print("Main thread is done.")
プロセスはプログラムが実行されるエンティティであり、各プロセスには独自の独立したメモリ空間とリソースがあります。 Python では、multiprocessing
モジュールを使用してプロセスを作成および管理できます。
import multiprocessing import time def task(): print("Process is running...") time.sleep(2) print("Process is done.") if __name__ == "__main__": process = multiprocessing.Process(target=task) process.start() print("Main process is running...") process.join() # 等待子进程运行完毕 print("Main process is done.")
コルーチンは、プログラム内で切り替えて実行できる軽量のサブルーチンです。 Python では、asyncio
モジュールを使用してコルーチン プログラミングを実装できます。
import asyncio async def task(): print("Coroutine is running...") await asyncio.sleep(2) print("Coroutine is done.") if __name__ == "__main__": loop = asyncio.get_event_loop() loop.run_until_complete(task()) loop.close()
非同期プログラミングは、同じスレッドで複数のタスクを処理できるイベント駆動型プログラミング モデルです。 Python では、asyncio
モジュールと await/async
キーワードを使用して非同期プログラミングを実装できます。
import asyncio async def task(): print("Async task is running...") await asyncio.sleep(2) print("Async task is done.") async def main(): await asyncio.gather(task(), task()) if __name__ == "__main__": asyncio.run(main())
概要:
この記事では、Python の複数の同時プログラミング モデルを紹介し、対応するコード例を示します。マルチスレッド、マルチプロセス、コルーチン、および非同期プログラミング モデルを使用すると、コンピュータ システムのリソースをより有効に活用し、プログラムのパフォーマンスと応答性を向上させることができます。ただし、実際のアプリケーションでは、同時実行効果を最大限に高めるために、特定のニーズやシナリオに応じて適切なプログラミング モデルを選択する必要があります。
以上がPython の同時プログラミング モデルとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。