Pythonのシリアル38-コルーチンは反復することができ、イテレータ、生産者 - 消費者モデル

まず、生産者 - 消費者モデル

インポートマルチプロセッシング

から時間インポートctimeの

DEFは、消費者(input_q):

    印刷" 消費者の中へ:" 、CTIME())

    しばらく真:

        処理項目

        項目 = input_q.get()

        印刷" プル"、アイテム、" QのOUT "有益な仕事にここに置き換える

        input_q.task_done() は、タスクが完了した信号

    を印刷消費者のアウト:、CTIME()) q.joinは())(4 task_doneを集め信号の後に、メインプロセスが開始するため、この文は実行されません

DEFの:プロデューサー(シーケンス、output_q)

    印刷:プロデューサーの中への、CTIME())

    のための項目シーケンス:

        output_qを.put(項目)

        を印刷" PUT "、アイテム、" into_q " 

    を印刷" プロデューサーのアウト:" 、CTIME()) 

確立する処理

のIF  __name__ == " __main__ " 

    Q = multiprocessing.JoinableQueue() 

    実行消費者のプロセス

    cons_p multiprocessing.Process(対象=消費者、引数= = (Q、))

    cons_p.daemon = 

    cons_p.start()


    #1 つ以上のアイテムの生産は、シーケンスは、消費者に送信される項目の順序を表し

    実際には、この出力発生器は、によって、または他の方法で製造することができる

    配列 = [1,2,3,4 ] 

    プロデューサ(シーケンス、Q) 

    処理するすべてのアイテム待ち

    )q.join(

 

第二に、コルーチン

参考文献1.コルーチン:

http://python.jobble.com/86481/

http://python.jobble.com/87310/

https://segmentfault.com/a/1190000009781688

2.参照のイテレータ

反復可能な(反復可能):ループ変数の中に直接的な役割

イテレータ(イテレータ):ループのために行動することができるだけでなく、それは次の呼び出し可能

3.関係:リストは次の呼び出しすることはできませんので、リストには、イテレータの典型的な反復可能ではなく、

4.基準:でisinstanceによって変数が一例であるかどうかを判断するには、反復するかどうかを決定することができます

コレクションインポートのIterable、イテレータ
L

 [I =のための I における範囲(5)]   することができ、反復

印刷(でisinstance(L、反復処理可能))反復か否かを判断する

プリント(でisinstance(L、イテレータ))か否かを判断しますイテレータ

s_iter = ITER(L) それイテレータに変換反復することができ、印刷(でisinstance(s_iter、反復可能)) 反復か否かを判断するプリント(でisinstance(s_iter、反復子)) イテレータか否かを判断します





第三に、ソース

d26_2_consumer_and_producer_model.py

d27_1_iterable_and_iterator_and_their_transform.py

https://github.com/ruigege66/Python_learning/blob/master/d26_2_consumer_and_producer_model.py

https://github.com/ruigege66/Python_learning/blob/master/d27_1_iterable_and_iterator_and_their_transform.py

2.CSDNます。https://blog.csdn.net/weixin_44630050(西6月6月ムードが知らない - ルイを)

3.パークブログます。https://www.cnblogs.com/ruigege0000/

4.マイクロチャネル公共数に焦点を歓迎:フーリエ変換は、ビッグデータの学習教材を取得するには、唯一の交流を学ぶために、舞台裏の返信「贈り物」をパブリック個人番号を変換します

 

 

おすすめ

転載: www.cnblogs.com/ruigege0000/p/11546516.html