草庐IT

node-webworker-threads

全部标签

c++ - 一旦 std :thread makes into C++Ox,pthreads 会过时吗

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭5年前。Improvethisquestion显然我们仍会维护它,但一旦C++标准保证可用,它会有多大用处。随着新标准的出现,同步原语(Mutex、条件变量)会怎样?您是否认为pthread比std::thread更难掌握?

c++ - 可以使用 thread_local 在 dll 中为每个线程提供一个静态全局变量吗?

我想使用C++11关键字thread_local在我们的开源库中,它可以在静态变量的上下文中动态或静态地链接到许多平台(Windows、Linux、MacOS等)上。这个变量是一个类类型,基本上只是封装一个std::stringstream变量并初始化它以满足我们的stringstream格式要求。出于性能原因,我们希望它静态可用(有关更多详细信息,请参阅我之前的question),如果这是每个线程完成的也可以。全局变量应该在静态模板类方法中使用,这些方法必须在头文件中实现。但这意味着,如果我理解正确的话,库的用户可能会在他们的可执行文件代码中包含此header,这会将模板化方法编译到

c++ - C++ 程序末尾的 thread_local vector 段错误

我正在尝试制作一个多线程程序,但在线程局部vector方面遇到了一个奇怪的问题。这是(精简到只有错误)代码:#include#includethread_localstd::vectorvec;intmain(){vec.push_back(3);std::cout程序编译正常,运行基本正常,但在我按回车键后,我收到“程序已停止工作”消息。我在gdb中运行它并得到了这个错误:ProgramreceivedsignalSIGSEGV,Segmentationfault.0x004030b0instd::vector>::~vector()()不知何故,vector的析构函数中存在错误。使

javascript - 从 node.js 中的扫描图像评估复选框

我想从扫描图像中评估复选框是否被选中。我发现像node-dv这样的Node模块和node-fv为了这。但是什么时候安装这个我在mac上遇到了以下错误。../deps/opencv/modules/core/src/arithm1.cpp:444:51:error:constantexpressionevaluatesto4294967295whichcannotbenarrowedtotype'int'[-Wc++11-narrowing]staticintCV_DECL_ALIGNED(16)v64f_absmask[]={0xffffffff,0x7fffffff,0xffffff

c++ - std::condition_variable::wait_until 相对于 std::this_thread::sleep_for 有什么优势吗?

在时间等待场景中:oursoftwareworksinthebackground,andsynchronizesdatawiththeserverinevery20-30minutes.我想用std::this_thread::sleep_for但我的上级强烈反对任何形式的sleep功能。他推荐std::condition_variable::wait_until(lock,timeout-time,pred)不知道在这种情况下sleep_for有什么缺点吗? 最佳答案 正如评论中已经指出的那样,这仅取决于您的用例。两者之间的主要区

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++ - 使用 cocoa 框架的 node.js 插件

我想使用cocoa中提供的一些c++框架,以便在node.js插件系统中使用。例如,如果您不能在node.js插件中使用cocoa框架,您将如何在mac上的node.js操作系统级别获取鼠标位置。如果有办法将其链接起来,有人可以提供帮助吗? 最佳答案 Cocoa是用ObjC编写的,不是吗?这样你就可以将它与NodObjC一起使用.如果您希望集成C++,您的知识来源是Node核心的Nan.新的实现使用C++部门来做到这一点,例如here用于桌面自动化。 关于c++-使用cocoa框架的no

c++ - 在 macOS High Sierra 上使用 node-gyp 动态链接 wfdb 库时未加载符号

我正在尝试创建一个依赖于WFDB库(https://www.physionet.org/physiotools/wfdb.shtml)的动态库。我的C++代码如下所示:#include#include#include#includeextern"C"{#include}#include"./sample_wfdb.h"intadd(inta,intb){returna+b;}intread(){inti,nsig;WFDB_Siginfo*siarray;WFDB_Sample*v;nsig=isigopen("/data/100s",NULL,0);if(nsigsignal1,si

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);