condition-variable

    26熱度

    1回答

    目前,我正在C++ 11中使用std::thread實現一個多線程項目。我使用std::condition_variable來同步線程。具體來說,一個消費函數調用wait()成員函數std::condition_variable來等待來自全局任務隊列的任務,另一個生成器函數生成任務並將其放入隊列中。但我不知道std::condition_variable的成員函數notify_all()和noti

    2熱度

    2回答

    通常所說的信號量......它們是否涉及到忙碌的等待?我對這個術語感到困惑。請告訴我,我能夠畫出的哪些結論是真實的。 a)Spinlocks涉及繁忙的等待,所以爲了避免這種情況,我們有信號量。 b)信號量是一種自旋鎖,但我們可以沒有繁忙的等待信號量 c)pthread_condition變量與信號量做同樣的事情嗎?如果是這樣,它們是否等同於semaphore.h庫中的信號量。如果兩者都代表相同的功

    2熱度

    1回答

    boost版本 - 1.47 我無法找到boost :: interprocess :: interprocess_sharable_mutex,但它看起來像它是前瞻性聲明。這是否真的支持? 我可以看到boost :: interprocess :: interprocess_upgradable_mutex是前向聲明的,它也被定義。但是,我無法找到一個對應的條件變量,我可以使用這個互斥量。有任何

    29熱度

    1回答

    我還沒有找到的threading模塊Condition和Event類之間的差別清晰的解釋。是否有明確的用例,其中一個比另一個更有幫助?我可以找到的所有示例都使用生產者 - 消費者模型作爲示例,其中queue.Queue將是更直接的解決方案。

    6熱度

    4回答

    我想在C++中爲Linux編寫一個程序的Windows版本。爲了程序是線程安全的,我在Linux版本中使用了pthread_cond_t和pthread_cond_wait。這些函數使用互斥鎖來幫助確保等待線程實際上正在等待。 我發現CONDITION_VARIABLE可能會在Windows中做的伎倆,但我不明白爲什麼它不會編譯。據我所知,我得到了錯誤「錯誤:'CONDITION_VARIABLE

    2熱度

    1回答

    我有一個情況,線程1正在等待條件變量A,它應該被線程2喚醒。現在線程2正在等待條件變量B,它應該被線程喚醒1.在我使用條件變量的場景中,我無法避免這種死鎖情況。我檢測到循環(死鎖)並終止其中一個參與死鎖的線程。 現在,我不知道是如何簡單地終止線程說線程1,它是在一個條件變量的等待。 將是一些指針感謝。 謝謝

    0熱度

    2回答

    此問題源於Breaking a condition variable deadlock。許多線程可能正在等待一個條件變量,我只需要發信號通知一個特定的線程,如線程1並殺死它,因爲它是一個死鎖場景的參與者。有沒有一種方法可以在很多方面發出一個單獨的線索。 會一些幫助是gratefull 感謝 的編輯;尊重尼莫的評論。我明白這是一個壞主意。但是,有沒有辦法做到這一點

    14熱度

    2回答

    我可能錯過了一些明顯的東西,但我看不到std::condition_variable和std::condition_variable_any之間的任何區別。爲什麼我們需要兩個?

    0熱度

    2回答

    如果我在一個python條件變量上調用wait(),那麼調用線程會暫停執行並返回yield嗎?還是一直保持阻塞狀態直到下一個上下文切換?

    14熱度

    1回答

    有人有如何最簡單地使用boost :: condition :: timed_wait的示例嗎?關於主題here,here和here有一些線索,但沒有一個是有效的示例。助推文檔像往常一樣相當稀疏。