プロデューサーの消費者問題 - 生産者と消費者

プロデューサーの消費:消費者プロデューサー

1.消費者、生産者は何ですか?ほとんどここと私たちの日常生活。シャンプーの工場は、人々が彼の最も忠実な消費者である、プロデューサーであり、ATMの生産者、消費者の撤退は、彼の人々であり、学校は、同社がプロデューサーである食堂、ダイナーソートの... ...消費者でありますモデル掃いて捨てるほど。

コンピュータを使用する方法2.このようなAライフモデル?現代のコンピュータは、基本的には、スケジューリングの基本ユニットは、スレッド(参照名説明下にある、方法を理解するためのスレッド)であるマルチタスクオペレーティングシステム(どちらかのシングルコアCPUまたはマルチコアCPU)です。異なるスレッド間(用語解説を参照してください横たわっている)で通信するには?プロデューサーは、非同期通信のための消費者機構が通知されます。

3.次のモデルを参照してください。

void *型プロデューサー(void *型データ)

{

   pthread_lock(MT);

   (リストがいっぱいになっている)場合

   {

      pthread_cond_waitの(cond_not_full、MT); //

   }

   add_queue(リスト、データ);

   pthread_cond_signalを(cond_not_empty)。

   pthread_unlock(MT);

}

void *型の消費者(void *型データ)

{

   pthread_lock(MT);

   (リストが空である)場合

   {

      pthread_cond_waitの(cond_not_empty、MT); //

   }

   delete_queue(リスト、データ);

   pthread_cond_signalを(cond_not_full)。

   pthread_unlock(MT);

}

4.知識シリーズ:生産と消費者のキューがリストNを行うには多くのものを組み合わせることができ、特定の使用シナリオ、別のアイデアは同じではありませんが、記載されていません。しかし、基本的には同じコードモデル。

 

西の用語集:

スレッド:それは、独自のまたは共有リソースを持っており、ほとんどの場合、無限ループの内部に(PCアドレスストリーキングに応じて)実行します。例えば:しばらく(1){//何かをする;};(;;){//何かをする。}の

現在、私はより多くのPOSIXのpthreadのスレッドで使用します。もちろん、Windowsの、C ++、アンドロイドなど、独自のパッケージが良いです。

スレッド間通信、通信プロセスの間:実際には、2つの電話コールを保持している2人(2つのスレッド)、[データIを送って、データI君を送ります。それがすべてです。

コモンモード:参照電子ブックのようなパイプ、メッセージキュー、共有メモリ、セマフォ、ソケット「Unixのプロセス間通信。」

 

Icekirin.yuan - キリンスタジオアディクト

Qグループ:147 565 042

 

公開された14元の記事 ウォンの賞賛8 ビュー20000 +

おすすめ

転載: blog.csdn.net/YXFLINUX/article/details/51911842