複数のスレッド間でのpythonハンドルイベント通信方式

まず、イベントは何ですか

事の各実装は、実行後の状態で何かがなければならない、とイベントがシグナルを起こっていること

プログラムでは、複数のスレッド間の通信を必要とする、そしてイベントは、スレッド間の通信を容易にすることです

ケース:

1.サーバーは5秒を開始します

起動する2. kefuduanリンクサーバー

3. Connectサーバーは、サーバーが開いたことを確認する必要があります

第二に、コードがあります

#が判断するために行うために、グローバル変数を使用して
インポート時間
 からスレッディングインポートスレッドに
ブート = Falseの
 DEFのserver_task():
     株式会社は参加無料ブート
     印刷....開始を
    time.sleep( 5 印刷成功を開始.... 
    ブート = 

DEFのclient_task():
     しばらく真:
         印刷" 接続サーバ.... " 
        time.sleep( 1。IF ブート:
             印刷" 接続成功" BREAK 
        印刷" エラー接続がサーバーが起動していない障害が発生した!! " 

T1 =スレッド(ターゲット= server_task)
t1.start()

T2 =スレッド(ターゲット= client_task)
T2を。 [スタート]()

t1.join()
t2.join()

三、2つのコード

#は、達成するためにイベントを使用して
#の注意:イベント・スレッド間通信のみを簡単な条件のために使用されているtrueに設定されている()改訂状況次のステップに進む前に待機()改訂ステータストゥーレ
インポートからスレッディングインポートスレッドを、イベント
・イベント = イベント()

DEFのserver_task():
     印刷" ....始まる" 
    time.sleep( 5 印刷" スタート....成功" 
    event.set()

DEFのclient_task():
    event.wait( )ブロッキング機能が機能するように設定したイベントが実行されるまでブロックします
    印刷" 成功连接!" 

、T1 =スレッド(ターゲット= server_task)
t1.start()
T2 =スレッド(ターゲット= client_task)
t2.start()

 

おすすめ

転載: www.cnblogs.com/angelyan/p/11374232.html