草庐IT

pthread_key_delete

全部标签

c++ - dll 的 new 和 delete 运算符重载

如何为dll重载new和delete运算符。我已经将重载运算符作为dll的一部分编写,但是与此dll链接的客户端不使用overloadednewanddelete 最佳答案 这是C++标准在第17.6.4.6/3节中对此的说明:Theprogram'sdefinitions(ofthenew/deleteoperators)areusedinsteadofthedefaultversionssuppliedbytheimplementation.Suchreplacementoccurspriortoprogramstartup.T

c++ - 强制转换为 void* 以将对象传递给 C++ 中的 pthread

我对如何将对象传递给pthread_create函数有些困惑。我发现了很多关于转换为void*、将参数传递给pthread_create等的零碎信息,但没有任何内容将它们联系在一起。我只是想确保我已经把它们绑在一起并且没有做任何愚蠢的事情。假设我有以下线程类:编辑:修复了不匹配的static_cast。classProducerThread{pthread_tthread;pthread_attr_tthread_attr;ProducerThread(constProducerThread&x);ProducerThread&operator=(constProducerThread

c++ - std::runtime_error 子类的 "call to deleted constructor of"编译器错误

我从std::runtime_error派生了一个异常类,以便添加对异常流的支持。我收到一个奇怪的编译器错误输出,我不确定如何解决?clang++-std=c++11-stdlib=libc++-g-Wall-I../-I/usr/local/includeMain.cpp-cMain.cpp:43:19:error:calltodeletedconstructorof'EarthException'throwEarthException(__FILE__,__LINE__)^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~../EarthExce

c++ - 我必须分离或加入 pthread 吗?

pthread_detach()文档说:Thepthread_detach()functionshallindicatetotheimplementationthatstorageforthethreadthreadcanbereclaimedwhenthatthreadterminates.如果我创建了一个可连接的线程但不分离或连接它,会有什么后果?该线程的资源不会被回收? 最佳答案 你回答了你自己的问题?线程需要系统中的某些资源。这些将被保留,直到线程被加入,或者它被分离并终止。(在您分离线程之前,系统必须假设您将在未来的某个时

c++ - pthreads 中的内存模型规范

使用pthread是否可以保证一个线程中的内存写入何时在其他线程中可见?与Java相比,Java语言规范有一个sectionthatspecifiestheinteractionoflocksandmemory这使得编写可移植的多线程Java代码成为可能。是否有相应的pthreads规范?当然,您总是可以让共享数据变得不稳定,但这不是我想要的。如果这取决于平台,是否有事实上的标准?还是应该使用另一个线程库? 最佳答案 POSIX在4.11MemorySynchronization中指定内存模型:Applicationsshallen

c++ - 如何从 C++ 中的 pthread 返回 double 值?

阅读此主题后:HowtoreturnavaluefromthreadinC关于如何从pthread返回整数值我测试过它是否可以用于double,但它没有。有没有办法像原始线程中描述的那样从pthread进程返回double、长整数或字符串,而不是返回整数42?如果是怎么办?如果我有一个包含10个位置的静态数组和10个pthread每次修改不同的位置,我会遇到麻烦吗?一个例子就像“线程0只修改数组[0],线程1只修改数组[1]等等”。 最佳答案 线程只需为您希望它返回的结果动态分配内存:void*myThread(void*){dou

c++ - 是否需要分离 pthread 以防止内存泄漏?

在我的程序中,我处理新线程pthread_tthread;pthread_create(&thread,NULL,c->someFunction,(void*)fd);//wherefdisIDofthethread问题很简单-如果我只是让someFunction完成,是否需要在C++中调用一些东西,例如join或其他任何东西,以防止内存泄漏或内存是否自动释放?? 最佳答案 来自opengrouppageforpthread_join,Thepthread_join()functionprovidesasimplemechanism

c++ - c++ 中的 malloc/free 和 new/delete 兼容性?

malloc/free和new/delete有一个很好的比较here,以及malloc()和free()如何工作的很好的解释here.显然,我们不会混合使用它们-将free与new一起使用或将delete与malloc一起使用。我们可以看到很多开源项目,有很多贡献者,使用这两种机制,同时遵守上述“禁止混合”规则。通常,您在一个文件中只有一种方式(一位作者,一种偏好)。我已经fork了这样一个项目,我正在使用new/delete添加一些功能。但是我遇到了一些奇怪的内存损坏。当然,我可能对他们负责,但是.....这让我问了一些“幼稚”的问题:我可以在同一个编译单元(*.o)中同时使用mal

c++ - 在 ubuntu 中找不到 pthread_create

我正在尝试在Ubuntu上运行cocos2d-x。它显示此错误:--LookingforIceConnectionNumberinICE--LookingforIceConnectionNumberinICE-found--FoundX11:/usr/lib/x86_64-linux-gnu/libX11.so--FoundOpenGL:/usr/lib/x86_64-linux-gnu/libGL.so--Lookingforincludefilepthread.h--Lookingforincludefilepthread.h-found--Lookingforpthread_cr

c++ - 在什么情况下 delete 运算符会抛出错误?

在我的链表实现中,删除内部类Node实例的辅助函数deleteNode(Node*)抛出运行时错误,通过“触发断点”在VS2015的本地Windows调试器中。我小心地匹配我的new和delete运算符。范围/引用是否发挥了我没有意识到的作用?即使clear()中存在逻辑错误并且deleteNode()被传递给nullptr,它也不应该抛出错误删除nullptr,然后将nullptr赋值给自己吧?该删除有什么问题?classLinkedList{public:LinkedList():head(nullptr){}~LinkedList(){clear();}voidpush_fron