インポートスレッド mylock = threading.RLock()。 NUM = 0 クラスmyThread(threading.Thread): デフ __init__ (自己、名): threading.Thread。__init__(自己、名= 名) デフ(自己)を実行します。 グローバルNUM ながら真: mylock.acquire() 印刷(' %sがロックされ、番号:%D '%。(threading.current_thread()名、NUM)) の場合 NUM> = 4 : mylock.release() 印刷(' %sの解放、番号:%D '%。(threading.current_thread()名、NUM)) ブレーク NUM + = 1枚 の印刷(' %sは解放、番号:%D '%(threading.current_thread()の名前。 、NUM)) mylock.release() もし __name__ == ' __main__ ' : スレッド1 = myThread(' Thread_1 ' ) スレッド2 = myThread(' Thread_2 ' ) thread1.start() thread2.start()
共通のデータ修正の複数のスレッド、それはチューは今、予期しない結果である可能性がある場合は、適切に被保険者のために
、複数のスレッドを同期させる必要があります。ロックとRLOCKを使用してスレッド・オブジェクトは、単純なスレッドの同期を実現することができます。。
両方のオブジェクトは、これらのデータ操作ができる唯一のスレッドを可能にするための方法は、取得方法に関連し、持って
その動作との間に取得し、方法に放出します。