#の条件
#ロック
#の獲得リリース
条件の#の始まりは、デフォルトで作成された状態は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の #并发编程