V.並行プログラミング(スレッドのイベント)

スレッドのイベント(イベント)

1.イベントメソッドをスレッド

オブジェクト管理イベント内部フラグ、セットすることにより()メソッドをTrueに設定し、Falseに設定するには、clear()メソッドを使用します。フラグがTrueになるまで()メソッドのブロックを待ちます。Falseに最初のフラグ。
方法:
is_set()
Trueに内部フラグがTrueを返す場合にのみ。
)(セット
内部フラグがTrueに設定されています。それが真のウェイクアップになるのすべてのスレッドが待っています。フラグが状態の真のままにすると、スレッドが待機()がブロックされていませんが呼び出されます。
クリア()
Falseに内部フラグをリセットします。その後、待機()スレッドが別のスレッドがセットを(呼び出すまで)ブロックしますTrueに内部フラグをリセットします呼び出します。
待機(タイムアウト = なし)は、
内部フラグが真になるまでブロックされました。確かに、その後、内部フラグ待ちで()メソッドを呼び出した場合にすぐに復帰。そうでなければ、別のスレッドまでのブロックがTRUEに設定()フラグのセットを呼び出し、またはタイムアウトが発生します。
あなたはタイムアウトを設定し、タイムアウトが発生しない限り、このメソッドは常に、Trueを返します。
  スレッディングインポートスレッド、イベント
 のインポート

DEFのデシベル(E):
    e.wait()  デフォルトはfalseである
    IF e.is_set()== TRUE:
         印刷" 接続がハッハッハ成功する" 

DEFのウェブ(E):
     印刷" データ・ネットワークは、通常の開始" 
    time.sleep( 1 
    e.set()     #1 #セットは状態真で行った

E = イベント()
Pスレッド=(=ターゲットウェブを引数= (E))
P1 =スレッド(目標= DB、引数=(E))
p.start()
p1.start() 

データ・ネットワークは、通常の起動
#の接続を成功ハッハッハである
#1  
#のプロセスは、0の終了コードを終了しました
インポートスレッディング、タイム

イベント = threading.Event() 「」 '「イベントはデフォルトではオフになって、セットが状態になった実行」
DEF A():
     印刷" 私は最初のスレッド関数Aだった、私は機能を待っていますbが...私をトリガー
    ()event.wait        #の  FALEがTrueの後にデフォルトがオンになっている
    印刷機能は、私が関数bをトリガすることでした:!ニマ言っている... " 

DEFのB():
     印刷私は2番目のスレッド関数bは、私が機能... Aをトリガするために始めました
    time.sleepは、( 1 
    event.set()  #の実行が真の状態に設定された


p型 = = threading.Thread(ターゲットA)
CThreading.Thread =(対象= b)の
p.start()
c.start() 
 私は私をトリガする機能を待っていますbの私は、最初のスレッド関数A午前... 私は2番目のスレッド関数bでした私は機能...トリガするために始めた
#1 ニマ:機能発言を!私は、関数bをトリガすることでした...
イベントデータ接続

から
スレッディングインポートスレッド、イベント のインポート DEF DB(E): COUNT = 0 しばらく COUNT <3。 e.wait() デフォルトはfalse IF e.is_set()== TRUE: 印刷 " 正常に接続ハッハッハ" BREAK COUNT + 1 = 印刷 " データベース接続%sの失敗"%の COUNTを) 昇給 TimeoutErrorを(接続タイムアウト!!!!!!!!!!!! " DEF ウェブ(E): 印刷" データネットワークは、通常の開始 time.sleep( 1 e.set() #を設定し実行するにはなっていましたステータス真 E = イベント() P =スレッド(=対象Web、引数= (E)) P1 =スレッド(目標= DB、引数= (E)) p.start() p1.start() データネットワーク通常の起動 #1 ハッハッハ接続に成功した #の #のプロセスは、0の終了コードを終了しました

 

おすすめ

転載: www.cnblogs.com/Sup-to/p/11206742.html