\

Pythonでは、並列処理とグローバル変数を組み合わせることで、複数の処理を効率的に管理することが可能です。この記事では、Pythonで並列処理を行いながらグローバル変数を活用する方法について解説します。

並列処理とグローバル変数

Pythonの並列処理では、複数の処理を同時に行うことができます。一方、グローバル変数は、プログラム全体からアクセス可能な変数で、特定の処理の終了により他の処理を終了させるなどの制御に利用できます。

以下に、並列処理とグローバル変数を組み合わせたPythonのコード例を示します。

import time
import random
from concurrent.futures import ThreadPoolExecutor

waittime = 5
flag = True

def main():
    with ThreadPoolExecutor(max_workers=2) as executor:
        executor.submit(timeWait)
        executor.submit(randomValue)

def timeWait():
    i = 0
    global flag
    while i <= waittime:
        print(f'timeWait: {i} sec')
        time.sleep(1)
        i = i + 1
    flag = False

def randomValue():
    global flag
    while flag == True:
        print(f'randomValue: {random.randrange(0,10)}')
        time.sleep(1)

if __name__ == '__main__':
    main()

このコードでは、timeWait関数とrandomValue関数が並列に実行されます。timeWait関数が終了すると、グローバル変数flagの値がFalseに変更され、これによりrandomValue関数の実行も終了します。

注意点

ただし、Pythonのmultiprocessingモジュールを使用した並列処理の中でグローバル変数を参照することはできません。そのため、並列処理の中でグローバル変数を使用する場合は、concurrent.futuresモジュールのThreadPoolExecutorを使用することを推奨します。

以上、Pythonで並列処理とグローバル変数を活用する方法について解説しました。この知識を活用して、Pythonプログラミングの幅を広げてみてください。

投稿者 admin

コメントを残す

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