Pythonで並列処理(旧)
これは古いです
https://qiita.com/miyagaw61/private/11ef458371d1c31502fe
こっちを見てください
方法
from threading import Thread
from threading import Barrier
def function01(barrier, arg1, arg2):
hoge()
barrier.wait()
fuga()
def function02(barrier, argA, argB):
foo()
barrier.wait()
bar()
barrier = Barrier(<threads num>)
threads = []
t = Thread(target=function01, args=(barrier, arg1, arg2))
t.start()
threads.append(t)
t = Thread(target=function02, args=(barrier, argA, argB))
t.start()
threads.append(t)
for t in threads:
t.join()
from threading import Thread
from threading import Barrier
def function01(barrier, arg1, arg2):
hoge()
barrier.wait()
fuga()
def function02(barrier, argA, argB):
foo()
barrier.wait()
bar()
barrier = Barrier(<threads num>)
threads = []
t = Thread(target=function01, args=(barrier, arg1, arg2))
t.start()
threads.append(t)
t = Thread(target=function02, args=(barrier, argA, argB))
t.start()
threads.append(t)
for t in threads:
t.join()
Example
from threading import Thread
from threading import Barrier
from time import sleep
def function01(barrier):
print('START function01 !')
barrier.wait()
for i in range(5):
sleep(0.5)
print('A')
print('FINISH function01 !')
def function02(barrier):
print('START function02 !')
barrier.wait()
for i in range(5):
sleep(0.5)
print('B')
print('FINISH function02 !')
def function03(barrier):
print('START function03 !')
barrier.wait()
for i in range(5):
sleep(0.5)
print('C')
print('FINISH function03 !')
barrier = Barrier(3)
threads = []
t = Thread(target=function01, args=(barrier,))
t.start()
threads.append(t)
t = Thread(target=function02, args=(barrier,))
t.start()
threads.append(t)
t = Thread(target=function03, args=(barrier,))
t.start()
threads.append(t)
for t in threads:
t.join()
# >>> START function01 !
# >>> START function02 !
# >>> START function03 !
# >>> B
# >>> A
# >>> C
# >>> B
# >>> A
# >>> C
# >>> B
# >>> A
# >>> C
# >>> B
# >>> A
# >>> C
# >>> B
# >>> FINISH function02 !
# >>> A
# >>> FINISH function01 !
# >>> C
# >>> FINISH function03 !
Author And Source
この問題について(Pythonで並列処理(旧)), 我々は、より多くの情報をここで見つけました https://qiita.com/miyase256/items/1b1846828c94bf6e3585著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .