condition-variable

    1

    1答えて

    CPUがサスペンド状態にあるときの時限条件変数はどうなるのですか? RAMにサスペンドしますか?タイマーは続行するか、一時停止しますか? CPUが起きたときにタイムアウトが経過した場合、タイムアウト条件が失われますか?または、CPUが起動するとタイマーが再開しますか?

    0

    1答えて

    高優先度スレッドで実行される優先度の高い機能を持つdllがあります。このdllは進捗状況を報告する必要があります。基本的にコールバックシステムが使用されます。問題は、dllがコールバックが完了するまでに要する時間を制御できないことです。つまり、優先順位の高い機能は、受け入れられないコールバックの実装に依存します。 アイデアは、進行中の通知をバッファリングしてコールバックを呼び出すクラスを持つことで

    2

    1答えて

    スレッドがpthread_cond_timedwaitを呼び出した後にETIMEDOUTを返した場合、スレッドはそのスレッドを所有していますか? 私は、最初はNOだと思うだろうが、それもpthread_cond_timedwait戻っETIMEDOUT後に我々必見コールpthread_mutex_unlockことが表示されます。 documentationは言う:正常終了時に 、ミューテックスがロ

    4

    3答えて

    私は、ループwhile-trueの中でwaitpid()とread()を待つことを試みています。具体的には、これらの2つのイベントのいずれかを待っていて、ループの各反復で処理します。現在、私は以下の実装をしています(これは私が望むものではありません)。 while (true) { pid_t pid = waitpid(...); process_waitpid_event(

    0

    1答えて

    標準のライブラリだけを使用してC++(11はOkです)で実装したいと思っているかなり基本的な問題に直面しています。 与えられた回数だけ呼び出すことができる関数 "Message()"を想定します。一定時間呼び出されずにアクションをトリガーしたいとします。例: Message(); Message(); Message(); Message(); sleep(10); <-- the idl

    1

    2答えて

    私の以下のソースコードは、まさにそのように動作します。問題は、コードがどこに行き詰まっているのかを知るためにprint fステートメントを使用したためにしか機能しないということでした。私は内部のwhileループでmutexをロックする代わりにロックを解除しなければならない理由を理解していません。申し訳ありませんが、それは非常に明確ではないが、私は自分自身でそれを理解する問題を抱えています。 わかり

    0

    1答えて

    私は現在、次のコードは、次の印刷されません理由として困惑している : My value is 0 My value is 1 My value is 2 私はこの私を実行するたびにどちらかの1-2印刷された線または何も、プログラムはただ座っを取得私がctrl-cになるまで。 3つのスレッドを持つ同じ条件変数とmutexを使って私と何か関係があるかもしれないような気がしますが、これは正しいで

    4

    1答えて

    これはCan C++11 condition_variables be used to synchronize processes?へのフォローアップです。 カウントセマフォとしてstd :: condition_variableオブジェクトを使用できますか? メタリンクはオブジェクトがstd :: mutexにバインドされているようではないため、バイナリセマフォとしてのみ使用できます。私はher

    0

    1答えて

    私はQtにいくつかのスレッドを書いていますが、偽の起床から保護するために、条件変数に述語を渡す方法を理解できません。 std::mutex(mu); std::condition_variable cond; std::unique_lock<mutex> alpha_lock(mu); cond.wait(alpha_lock, [](){ return //some condition

    3

    1答えて

    条件変数の以下の単純な例で考えてみましょう: bool pause = true; boost::mutex::scoped_lock lock(m_mutex); while (!pause) cv.wait(lock); と boost::mutex::scoped_lock lock(m_mutex); pause = false; cv.notify_one(); たちが