boost-thread

    2热度

    1回答

    我正在使用boost并尝试创建将执行其任务并退出的基本thread_group。这里是我的代码如下所示: boost::thread_group threads; void InputThread() { int counter = 0; while(1) { cout << "iteration #" << ++counter << " Press

    2热度

    1回答

    我有这样一段代码执行三个线程,其中第二线程应该得到的紧迫中断输入并打印出消息: void input_val() { // DO STUFF return; } void process_val() { // DO STUFF try{ cout << "waiting for ENTER..." << endl; boost:

    3热度

    2回答

    我有一个从main创建的生产者和消费者线程。他们正确地表现良好,除了COUT声明 class myclass{ int x; // stuff } void foo1(myclass* ob){ setX(ob->x); // stuff } void foo2(myclass* ob){ cout << ob->x << endl; // ONLY THIS DOESN'

    1热度

    2回答

    我一个32个内核的计算机上运行下面的程序: #include<iostream> #include<algorithm> #include<boost/thread.hpp> using namespace std; boost::thread_group g; boost::mutex _mtx; class A{ public: void foo() {

    4热度

    2回答

    我们有一个多线程应用程序。在当前的实现中,线程1在启动时创建并定期(每秒左右,可配置)唤醒以检查磁盘是否存在潜在的保存文件。这些文件由另一个线程保存,thread2。那运行线程1和它的周期性唤醒可能会减慢应用程序。 现在我们有机会使用boost ::条件变量把线程1阻塞,直到线程2通知它。通过这样做,需要创建一个标志以避免从线程2不必要的通知,并且该标志需要被同步并且通过线程2以高频率(数百秒在几

    1热度

    1回答

    我目前正在编写一个使用boost线程的DLL。我遇到了使用boost :: thread :: interrupt()和捕获thread_interrupted异常的问题。有了一些中断字体,中断被抛出并被捕获到线程和其他线程中,中断被引发到thread.interrupt()被调用的地方。为什么会发生?我已经写了一个基本示例来说明我的观点,它在本文末尾 程序启动一个线程,该线程使用一个工作器函数,

    5热度

    1回答

    下面的代码用于在Boost 1.49中按预期工作的有界线程安全队列。但是,在升级到1.54之后,代码不再按预期运行。也就是说,当缓冲区为空(完整)时,消费者线程(生产者线程)正在等待m_not_empty(m_not_full)条件变量,永远不会唤醒(因为生产者线程没有互斥体)。 版本1.54中是否有可能会破坏代码的更改?或者,也许,我错过了代码中的错误? #include <iostream>

    2热度

    1回答

    我想使用boost :: future .then()函数。 该片段取自Boost 1.54.0 thread synchronisation documentation #include <string> #include <boost/thread/future.hpp> int main() { boost::future<int> f1 = boost::async([]()

    3热度

    1回答

    我想等待一段时间的条件。 我读了助推文档,似乎最好使用带谓词的函数wait_for,如here所述。 不幸的是,这个例子对我来说并不是很有用。我应该如何编写谓词?我试着写上面报道的代码,但在Visual Studio编译器抱怨:c:\boost\boost\thread\win32\condition_variable.hpp(394): error C2064: term does not ev

    38热度

    2回答

    如何在C++中使用boost来创建线程池,以及如何将任务分配给线程池?