PythonのRLOCKスレッドの同期を実装

インポートスレッド

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を使用してスレッド・オブジェクトは、単純なスレッドの同期を実現することができます。
両方のオブジェクトは、これらのデータ操作ができる唯一のスレッドを可能にするための方法は、取得方法に関連し、持って
その動作との間に取得し、方法に放出します。

おすすめ

転載: www.cnblogs.com/guofx/p/11546003.html