Pythonはその独自の特性上、一部の並列処理をサポートしていますが、完全な並列処理をサポートしているわけではありません。PythonのGlobal Interpreter Lock(GIL)は、一度に一つのスレッドしか実行できないように制限するため、単一のPythonプロセスでは真の並列処理が制限されます。
しかし、Pythonではmultiprocessingやthreadingといったライブラリを用いて、マルチプロセスやマルチスレッドのプログラミングの実装が可能です。これらを使うことで、GILの制約を回避し、効率的な並列処理を実現できます。
以下に、Pythonでの並列処理の基本的な例を示します。
from multiprocessing import Process
def f(name):
print('hello', name)
if __name__ == '__main__':
p = Process(target=f, args=('bob',))
p.start()
p.join()
上記のコードはマルチプロセスの基本的な例です。一方、threadingモジュールを使ったマルチスレッドの基本的な例は以下のとおりです。
import threading
def worker():
print('Worker')
if __name__ == '__main__':
for _ in range(5):
t = threading.Thread(target=worker)
t.start()
これらの例からわかるように、Pythonでは標準ライブラリを利用して並列処理を実装することが可能です。.