草庐IT

thread-local

全部标签

c++ - 调试boost::thread应用,误报率高

我编写了一个boost::thread应用程序,其中可能存在一些竞争条件。我想调试这个程序。因此,我使用了以下valgrind工具:哈尔格林德博士不幸的是,他们的误报率非常高。因此,使用下面的非常简单的程序valgrind--tool=drd会提示94个错误,而本不该出现的错误。因此,在我的复杂程序中,我得到了大约15000个错误。所以很难找到真正的错误。我可以使用以下boost库1.46.0和1.47.0重现此行为。以及valgrind3.7.0SVN和valgrind3.8.0SVN。我试用的操作系统是Ubuntu11.10和MacOSX10.7。gcc4.2.1和gcc4.6.1

c++ - 使用来自matlab的boost::threads时挂起和/或segfault,而不是直接调用时

问题出在人们有类似问题的情况下:经过与Mathworks支持的一些讨论之后,原来是系统boost和Matlab附带的boost库之间的冲突:当我使用systemboostheader进行编译并与(较旧)的MatlabBoost库,它已分段。当我编译并与系统boost动态链接时,然后它动态加载Matlabboost库时,它将永远挂起。静态链接到系统boost的工作原理,以及为Matlab随附的boost版本下载正确的header并进行编译时也是如此。当然,Mac版本的Matlab的文件名中没有版本号,尽管Linux和据说的Windows版本都有。R2011b使用boost1.44作为引用

c++ - 使用 boost::locale/ICU 边界分析与中文

使用theboost::localedocumentation中的示例代码,我无法获得以下内容以正确标记中文文本:usingnamespaceboost::locale::boundary;boost::locale::generatorgen;std::stringtext="中華人民共和國";ssegment_indexmap(word,text.begin(),text.end(),gen("zh_CN.UTF-8"));for(ssegment_index::iteratorit=map.begin(),e=map.end();it!=e;++it)std::cout这拆分了中

c++ - 无法编译项目 : error in locale. h 文件

我正在尝试编译一个具有以下header的项目:locale.h;语言环境.h:classLOG4CXX_EXPORTLocale{public:...protected:Locale(constLocale&);Locale&operator=(constLocale&);constLogStringlanguage;谁能给我一些建议?我遇到了这个错误。我不知道有什么问题。/LOGGER/include/log4cxx/helpers/locale.h:42:41:error:field‘language’hasincompletetypeconstLogStringlanguage;

c++ - 为什么在 C++0x 或 Boost.Thread 中没有针对多个互斥锁的作用域锁?

C++0x线程库或Boost.thread定义非成员变量模板函数,锁定所有锁避免死锁。templatevoidlock(L1&,L2&,L3&...);虽然此功能有助于避免死锁,但标准不包括用于编写异常安全代码的关联作用域锁。{std::lock(l1,l2);//dosomething//unlocklil2exceptionsafe}这意味着我们需要使用其他机制作为try-catchblock来制作异常安全的代码,或者我们自己在多个互斥锁上定义我们自己的作用域锁,甚至这样做{std::lock(l1,l2);std::unique_locklk1(l1,std::adopted);

Error: Cannot install in Homebrew on ARM processor in Intel default prefix (/usr/local)

Error:CannotinstallinHomebrewonARMprocessorinInteldefaultprefix(/usr/local)错误原因分析解决方案错误原因分析在使用brewinstall命令安装软件包时,出现如上错误。这个错误信息通常出现在使用M1/M2芯片(ARM架构)的Mac上,是因为尝试在Intel架构的默认前缀/usr/local上安装Homebrew时。Homebrew建议在M1/M2芯片上使用不同的前缀目录/opt/homebrew来安装,以确保与M1/M2芯片兼容的二进制文件被正确安装。这是为了避免架构不匹配的问题。解决方案为了解决这个问题,需要重新在/o

c++ - 如何用 "-pthread"而不是 "-mthread"编译 boost_thread?

我有一个操作系统,编译时没有可用的-mthread。我有-pthread。如何用-pthread而不是-mthread编译boost_thread?我当前的编译器构建日志:./b2-j1--with-threadlink=static--prefix=./install-dirreleasethreading=multi--builddir=./build-dirinstallComponentconfiguration:-chrono:notbuilding-context:notbuilding-date_time:notbuilding-exception:notbuilding

c++ - 替代 std::this_thread::sleep_for()

我有一个循环,我想确保它在每个循环中运行(大约)固定的时间量。我正在使用sleep_for来实现此行为,但我也希望程序能够在不完全支持标准线程库的环境中编译。现在我有这样的东西:usingnamespacestd;usingnamespacestd::chrono;//while(!quit){steady_clock::time_pointthen=steady_clock::now();//...doloopstuffsteady_clock::time_pointnow=steady_clock::now();#ifdefNOTHREADS//versionforsystemsw

【神行百里】python开启多线程(threading)与多进程(multiprocessing)运行

  由于处理数据过多,程序运行很慢,就学习了一下python开启多线程与多进程的方法,虽然最后也没用上,但还是记录总结一下,以备不时之需。  传送门:进程与线程认识,进程与线程通俗理解  简言之,进程为资源分配的最小单元,线程为程序执行的最小单元1.threading库实现多线程运行  threading库中的Thread类可以方便地开启多线程运行,Thread类需要传入两个参数,target为需要执行的函数,args为函数的参数,本例中自定义的multithreading函数具有三个参数。importthreadingimporttimeimportosdefmultithreading(d

c++ - Thread C++ 成员函数模板可变参数模板

我尝试使用线程调用对象的成员函数。如果函数没有可变参数模板(Args...args),没问题,它可以工作:考虑这两个类:基因引擎templateclassGeneticEngine{templateT*run_while(bool(*f)(constT&),constintsize_enf,Args&...args){std::thread(&GeneticThread::func,islands[0],f,size_enf);/*Somecode*/return/*...*/}private:GeneticThread**islands;}遗传线程templateclassGenet