boost-thread

    3热度

    1回答

    请考虑以下示例。假设你有一个生产者和N个消费者等待数据。您不仅要在数据准备就绪时通知消费者,而且还要由于某种原因(错误或中断点)终止生产者。在后一种情况下,读者也应该终止。 // Globals boost::shared_future<void> future; boost::condition_variable_any cv; // Producer auto producer =

    1热度

    1回答

    考虑以下针对boost v1.53构建的程序。我期望z = 10作为输出,但程序打印z = -1294967296。有人可以解释为什么吗? // g++ -std=c++11 -O2 -Wall -pedantic -lboost_system -lboost_thread main.cpp && ./a.out #include <iostream> #include <iomanip>

    0热度

    1回答

    以下是关于Boost库文档的代码。 #include <iostream> #include <boost/asio.hpp> #include <boost/date_time/posix_time/posix_time.hpp> void print(const boost::system::error_code& /*e*/) { std::cout << "Hello,

    -1热度

    3回答

    在我的应用程序中,我给了10秒的睡眠时间。我已经使用boost :: this_thread :: sleep函数进行睡眠。 是否有任何可能的方法来中断boost :: this_thread :: sleep函数。

    1热度

    2回答

    给定对象x,我想启动一个新线程来调用x.a()甚至x.a(1,2,3)。我可以使用boost::thread为非成员函数执行此操作;但我如何为会员功能做到这一点?我如何通过this指针?一般来说,有很多STL和Boost代码和模板将代码作为参数,但是,由于这不是真正在C++中定义的(函数不是一级vals,本地lambda支持)我很困惑他们是如何定义的。我可以做试验和错误,但我想要更清洁的人,更可靠

    2热度

    1回答

    我正在使用下面的简单程序来为命令行上指定的参数生成睡眠。 我找不到对应于主线程的boost::thread对象。使用empt thread_obj,sleep正在工作,但boost :: thread对象在我运行程序时不会中断。 那么,为什么我没有得到boost::thread对象的中断? #include<iostream> #include<boost/thread/thread.hpp>

    2热度

    1回答

    我试图在os x上启动并运行光纤,并且遇到了很多问题。首先,由于使用了Apple不支持的thread_local,因此光纤无法与Apple clang一起编译(根据我在网上找到的内容,他们认为它们可以比标准的llvm更好地实现它,并且不想仅为了突破而引入它ABI稍后)。 因此,我尝试使用通过自制软件安装的gcc-5。经过一段时间的推动构建后,我设法构建了光纤,并且我可以成功地链接示例程序,但它们会

    2热度

    1回答

    第一次在C++中使用线程。我一直在寻找使用boost,这对我来说非常困惑。基本上所有我想要做的是: 创建一个工作线程异步做一些工作。在工作完成时继续主线程。 工作线程完成后,用一些在主线程上下文中执行的结果触发一个回调函数。 因此,类似于C#中的线程处理。 似乎没有任何支持2.使用io_service和异步函数,然后使用io_service上的run()似乎阻止主线程。所以不是非常异步。 我使用b

    2热度

    1回答

    我在共享指向共享对象的指针时遇到问题。我有C类的一个对象,类A,它与B类型的对象共享指向它的指针。然后该对象有一个线程正在更改对象c的值val,但这些更改不会应用于存储在对象b中的指针。任何人都可以帮助我,为什么会这样呢? 随着BOOST: #include <iostream> #include <boost/thread.hpp> class C { public: C(in

    0热度

    2回答

    我们知道boost::this_thread::sleep_for(...)可用于将当前正在运行的线程置于睡眠状态。与常规的sleep()函数有何不同。看来我们使用boost::this_thread::sleep_for(...)的每个地方都可以简单地用sleep()方法代替,而不影响结果。任何人都可以投入一些光。