day40条件タイマーキュースレッドプールのPythonの基礎

#の条件
#ロック
#の獲得リリース
条件の#の始まりは、デフォルトで作成された状態はFalseいる
#偽の状態は待機が待機状態にあった影響
#(intデータ型)に通知キーを作りました

通知および取得のリリースの間に必要なウエイト

待機()を取得し、これらに限定されない待機、コードをロックするためのキーとの間のコードで書かれたキーは、ウェイトの後方に配置しなければならないのを待っています

キーがまだ出て作られていない、それは一度だけ使用することができます

スレッド輸入スレッドを、条件
 デフFUNC(CON、I):
    con.acquire()
    con.wait() 等钥匙
    プリント' 在第%sの个循环里'I)
    con.release()
CON = 条件式( )
 のための I における範囲(10 ):
    スレッド(目標 = FUNC、引数= (CON、i))を開始()。
 一方、TRUE:
    NUM = INT(入力(' >>> ' ))
    con.acquire()
    CON。通知(NUM)  造钥匙
    con.release()

タイマー

 

輸入からのスレインポートタイマー
 DEF FUNC():
     印刷' 時刻同期'1-3 

しばらく真:
    T(5、FUNC)=タイマー.start()   ノンブロッキング 
    time.sleep(5)

キュー:

キュー
のインポートキュー

Q = Queue.Queue()  キューFIFO 
#1 q.put() q.get() q.put_nowait() q.get_nowait() 

Q = queue.LifoQueue()#スタック前進後
#1 q.put(1)
#1 q.put(2)
#1 q.put(3)
#1 印刷(q.get()) 印刷(q.get())

    Q = queue.PriorityQueue()  プライオリティキュー 
    q.put((20であり、' A ' ))
    q.put(( 10、' B '))
    q.put((30、' C ' ))
    q.put(( -5、' D ' ))
    q.put(( 1、' ' ))
     プリント(q.get())

スレッドプール:

インポート時間
 から concurrent.futuresはインポートThreadPoolExecutor
 DEF :FUNC(N-)
    time.sleep( 2 プリント(N-)
     を返す N- * N- 

DEF :call_back(M)
     プリント' 結果S%'%のm.resultを())

TPOOLであります ThreadPoolExecutor =(max_workers = 5)     デフォルトのcpu 5 *の数を超えていない
ため、私   レンジ(20 ):
    tpool.submit(FUNC、ⅰ).add_done_callback(call_back) 


tpool.map(FUNC、レンジ(20))#戻り値取得することはできません
#をt_lst = [] iに対して範囲内(20):      T = tpool.submit(FUNC、I)
#1      t_lst.append(t)は
#1 tpool.shutdown()#閉じる+#の参加
#の印刷( '主线程')t_lstでのトンのため:プリント( '***'、t.result()) 

ftpの并发编程

 

おすすめ

転載: www.cnblogs.com/wang-tan/p/11449230.html