boost-thread相关内容

C ++线程问题 - 设置一个值来指示线程已经完成

以下是否安全? 我是线程的新手,我想将一个耗时的进程委托给我的C ++程序中的一个单独的线程。 使用boost库我编写了这样的代码: thrd = new boost :: thread(boost :: bind(& myclass :: mymethod ,this,& finished_flag); 其中finished_flag是我的类的布尔成员当线程完成时,它设置我的 ..
发布时间:2016-10-23 14:17:03 C/C++开发

boost :: thread sleep()是什么?

我目前正在为boost线程工作一个小的包装类,但我真的不知道睡眠功能如何工作,这是我到目前为止: BaseThread :: BaseThread(){ thread = boost :: thread(); bIsActive = true; } BaseThread ::〜BaseThread(){ join(); } void BaseThread :: ..
发布时间:2016-10-23 13:59:39 C/C++开发

提升线程取消

你可以像一个pthread一样取消Boost线程吗? 我写一个简单的看门狗来终止工作线程,如果它们崩溃了,是一种简单地取消Boost Thread库中的线程的方法。 解决方案 它们不支持cancel,好的东西,因为它可以导致各种各样的细微问题。 看看文档的部分,涵盖线程中断和boost :: thread_interrupted异常和时尚的东西允许你完成你想要的,同时也清理的东 ..
发布时间:2016-10-23 12:24:55 C/C++开发

是否期望使用boost :: thread_specific_ptr<> :: get()是否慢?任何工作?

我目前使用Valgrind的“Callgrind”来分析性能问题的应用程序。在查看分析数据时,看起来在 boost :: detail :: get_tss_data 中花费了25%的处理时间主要目的是物理模拟和可视化的应用程序。 get_tss_data thread_specific_ptr :: get 通常是否暗示其他特定的内容? 编辑: 我的平台:Linux-2. ..
发布时间:2016-10-22 19:12:31 C/C++开发

boost :: thread的指针

我有一个关于线程管理的问题。 我的问题是,我想创建一个类ThreadManager必须管理所有创建的线程,当然也销毁此线程。 class DerivedInterface { public: DerivedInterface():id (“测试”){}; virtual〜DerivedInterface(){}; virtual void run()= 0; vi ..
发布时间:2016-10-20 23:58:57 C/C++开发

调试boost ::线程应用,高误报率

我编写了一个boost :: thread应用程序,其中我可能有一些竞争条件。我想调试这个程序。因此,我使用了以下valgrind工具: halgrind drd 不幸的是,他们有一个非常假的阳性率。所以使用真正简单的程序下面 valgrind --tool = drd 抱怨大约94错误,其中no应该是。所以与我的复杂程序,我得到大约15000错误。所以这真的很难找到实际的错误。 ..
发布时间:2016-10-20 21:34:39 C/C++开发

boost asio异步等待条件变量

是否可以对boost :: asio中的条件变量执行异步等待(读取:非阻塞)?如果它不是直接支持任何提示实现它将不胜感激。 我可以实现一个定时器和唤醒,甚至每几个毫秒,但这是方法是非常差,我发现很难相信条件变量同步没有实现/记录。 解决方案 如果我正确理解了意图,那么当一个条件变量被发出时, asio线程池?我认为在处理程序的开头等待条件变量就足够了, io_service :: p ..

boost ::线程数据结构大小上荒谬的一面?

编译器:linux上的clang ++ x86-64。 自从我编写了任何复杂的低级系统代码和我对系统的ussualy程序原语(windows和pthreads / posix)。所以,在#和外的已经从我的记忆。我现在使用 boost :: asio 和 boost :: thread 。 为了针对异步函数执行器模拟同步RPC( boost :: io_service $ c> io : ..

可以停止cin等待输入?

在图形应用程序中,我使用控制台输入执行调试命令。当创建控制台时,还创建一个新线程来收集处理所有输入的用户命令,图形应用程序继续并行运行。我使用boost ::线程库。 到目前为止工作良好,但我没有找到一个好的解决方案停止执行这个线程。线程总是等待用户输入: while(appRunning) { std :: theUserCommand; // ... do stuff ..
发布时间:2016-10-17 11:06:46 C/C++开发

boost :: asio with boost :: unique_future

根据 http://www.boost.org /doc/libs/1_55_0/doc/html/boost_asio/overview/cpp2011/futures.html ,我们可以使用boost :: asio与 std :: future 。但我找不到任何有关使用 boost :: unique_future 的任何信息,它有更多的功能,如 then()。如何使用? 解决方案 ..
发布时间:2016-10-17 09:21:11 C/C++开发

多个互斥锁定策略以及为什么库不使用地址比较

有一种广为人知的锁定多个锁的方法,其依赖于根据该顺序选择固定的线性顺序和锁定锁。 ,在“获取两个互斥锁上的锁定并避免死锁”的答案中。特别是,基于地址比较的解决方案似乎相当优雅明显。 当我试图检查它是如何实际实现,我发现这个解决方案没有被广泛使用。 引用 ..
发布时间:2016-10-17 09:09:26 C/C++开发

设计线程安全的可复制类

使线程安全的简单方法是添加一个mutex属性,并在访问器方法中锁定互斥体。 cMyClass { boost :: mutex myMutex; cSomeClass A; public: cSomeClass getA(){ boost :: mutex :: scoped_lock lock(myMutex); return A; } }; 问题 ..
发布时间:2016-10-14 12:18:28 C/C++开发

多线程能加速内存分配吗?

我使用一个8核处理器,我使用Boost线程来运行一个大程序。 逻辑上,程序可以分成组,每个组由一个线程运行。 在每个组内,一些类总共调用“new”运算符10000次。 Rational Quantify显示,当程序运行时,“新”内存分配占用了最大处理时间,并且减慢了整个程序的运行速度。 方式我可以加快系统可以使用每个'组'内的线程,以便10000内存分配可以并行发生。 我不清楚如 ..

给boost线程命名?

是否可以给 boost :: thread 命名,以便调试器表和崩溃日志更可读?如何? 解决方案 您需要访问底层线程原语并以系统相关方式分配名称。调试和崩溃日志本质上是系统依赖的,而boost :: thread更多关于非系统依赖,即关于可移植性。 看起来( http://www.boost.org/doc/libs/1_43_0/doc/html/thread .html ),没有 ..
发布时间:2016-10-14 10:11:03 C/C++开发

我可以使用Boost Signals2和Threads在C ++中创建一个软件看门狗定时器线程吗?

我在当前的单线程应用程序中从其他人的库运行函数Foo。大多数时候,我打电话给Foo,它真的很快,有时,我打电话给Foo,它需要永远。我不是一个耐心的男人,如果Foo会永远,我想停止执行Foo,而不是用这些参数调用。 什么是最好的方法以受控的方式调用Foo(我当前的环境是POSIX / C ++),这样我可以在一定秒数后停止执行。我觉得在这里做的正确的事情是创建第二个线程调用Foo,而在我的主 ..
发布时间:2016-10-13 11:32:12 C/C++开发

模式的未来转换

目前,我们正在使用异步值非常沉重。 假设我有一个函数,确实是这样的: INT do_something(常量的boost ::了posix_time :: TIME_DURATION&安培; SLEEP_TIME) { BOOST_MESSAGE(“睡有点”); 提高:: this_thread ::睡眠(SLEEP_TIME); BOOST_MESSAGE(“说完睡 ..
发布时间:2016-08-12 19:09:25 C/C++开发