x
スレッドがすべて同期ポイントに到達するまで待機する必要があるという問題があります。私のソリューションでは、synchronise
同期が必要なときに各スレッド関数によって呼び出される以下のメソッドを使用します。
これを行うためのより良い方法はありますか?
thread_count = 0
semaphore = threading.Semaphore()
event = threading.Event()
def synchronise(count):
""" All calls to this method will block until the last (count) call is made """
with semaphore:
thread_count += 1
if thread_count == count:
event.set()
event.wait()
def threaded_function():
# Do something
# Block until 4 threads have reached this point
synchronise(4)
# Continue doing something else