stdthread

    0熱度

    2回答

    在C++ 11中,如何實現一個程序來執行兩個相同類型的昂貴(網絡)調用,然後只等待更快的結果,而不是等待並放棄較慢的結果。 std :: thread不能被中斷,並且不會返回一個方便的std :: future。而std :: async返回一個未來,既不能被中斷也不能被分離。 兩個主要問題是: 當更快的結果到達時通知。 - 終止(並清理)較慢的線程。

    1熱度

    2回答

    我想要做這樣的事情: class A { public: void a_start() { // somewhere in A: my_b = new B(); std::thread t(my_b->b_start); // won't compile } private: B* my_b; }; class B { publi

    0熱度

    2回答

    我最近一直在使用boost asio和一些新的C++ 11結構。以下是導致意外行爲的代碼示例部分(至少對我而言)。 void Server::startAccept() { connections_.push_back(std::make_shared<Connection>(io_service_)); acceptor_.async_accept(connections_

    2熱度

    4回答

    當C++ 11我已經創建了下面的例子測試線程: #include <iostream> #include <thread> class Foo { public: Foo(void) { std::cout << "Constructor called: " << this << std::endl; } ~Foo(void) { st

    3熱度

    1回答

    我有一個多線程應用程序(使用std :: thread)和一個管理器(類樹),它在不同的子樹上執行某段代碼(嵌入式結構子樹)在平行下。基本思想是每個SubTree實例都有一個存儲對象的雙端隊列。如果雙端隊列爲空,則線程將等待,直到在雙端隊列中插入新元素或達到終止條件。一個子樹可以生成對象並將它們推送到另一個子樹的雙端隊列中。爲了方便起見,我所有的std :: mutex,std :: locks和