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プログラミングの幅を広げてみてください。