condition-variable

    4

    1答えて

    オンラインでMac OS Xでpthread_cond_waitという奇妙な証拠は見つかりませんでしたが、私にとっては最も簡単なテストでは失敗しているようです。 機能 int pthread_cond_wait(pthread_cond_t *, pthread_mutex_t *); はミューテックス引数#2のロックを解除した後、条件引数#1上で送信される信号を待つことになっています。私はこ

    5

    1答えて

    単一プロデューサスレッドのシングルコンシューマスレッドのロックレスキューがあり、プロデューサがデータを生成することなく長期間使用する可能性があるとします。待ち行列に何もないときにコンシューマースレッドをスリープさせることは有益です(節電と他のプロセス/スレッドのためのCPUの解放)。キューがロックレスでない場合、この問題を解決する簡単な方法は、生成スレッドがミューテックスをロックし、その作業を行い

    4

    3答えて

    私は最近、pthreadsを使って作業してきましたが、まだ得られていないことが少しあります。私は、条件変数が特定の条件が成立するのを待つ(または「シグナルが送られる」)ように設計されていることを知っています。私の質問は、どのように通常のミューテックスとは全く違うのでしょうか? 私が理解しているように、条件変数はロックを解除する追加ロジックを持つmutexだけではありません別のミューテックス(および

    9

    4答えて

    boost::condition_variableでtimed_waitを使用している場合、ユーザ(またはntp)がシステム時間を変更しても、待機時間はタイムアウトしますか? 例えば、 boost::posix_time::time_duration wait_duration(0, 0, 1, 0); // 1 sec // ** System time jumps back 15 minut