\

Pythonでは、threadingsubprocessという2つのモジュールを使用して、マルチスレッドとサブプロセスを活用することができます。

マルチスレッドとは

マルチスレッドは、1つのプロセス内で複数のタスクを同時に実行する技術です。Pythonのthreadingモジュールを使用すると、マルチスレッドのプログラムを簡単に作成することができます。

以下に、Pythonでマルチスレッドを実装する基本的なコードを示します。

import threading
import time

def run(n):
    print("task: {}".format(n))
    time.sleep(1)

t1 = threading.Thread(target=run, args=("t1",))
t2 = threading.Thread(target=run, args=("t2",))

t1.start()
t2.start()

t1.join()
t2.join()

このコードでは、run関数を2つのスレッドで並行に実行しています。

サブプロセスとは

サブプロセスは、新しいプロセスを生成して外部のプログラムを実行する技術です。Pythonのsubprocessモジュールを使用すると、サブプロセスを簡単に作成することができます。

以下に、Pythonでサブプロセスを実装する基本的なコードを示します。

import subprocess

subprocess.run("echo Hello, World!", shell=True)

このコードでは、新しいサブプロセスを生成してechoコマンドを実行しています。

マルチスレッドとサブプロセスの組み合わせ

マルチスレッドとサブプロセスを組み合わせることで、より高度な並行処理を実現することができます。例えば、以下のコードは、マルチスレッドを使用して複数のサブプロセスを並行に実行する例です。

import threading
import subprocess
import queue

def worker(q):
    while True:
        item = q.get()
        subprocess.call("echo "+str(item), shell=True)
        q.task_done()

q = queue.Queue()
for i in range(30):
    q.put(i)

for _ in range(10):
    t = threading.Thread(target=worker, args=(q,))
    t.start()

q.join()

このコードでは、30個のechoコマンドを10個のスレッドで並行に実行しています。

以上が、Pythonでのマルチスレッドとサブプロセスの基本的な活用方法です。これらの技術を理解し、適切に活用することで、Pythonプログラムのパフォーマンスを向上させることができます。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です