草庐IT

pthreads-win

全部标签

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++ - 我必须分离或加入 pthread 吗?

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

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

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

c++ - 在 Win32 应用程序中添加状态栏

我想为我的Win32应用程序添加一个状态栏。我发现我可以使用CreateStatusWindow函数。在重新调整窗口大小之前,我工作正常。查看我的代码块的一部分:BOOLInitInstance(HINSTANCEhInstance,intnCmdShow){HWNDhWnd;hInst=hInstance;//StoreinstancehandleinourglobalvariablehWnd=CreateWindow(szWindowClass,szTitle,WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,0,CW_USEDEFAULT,0,NULL,NULL

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++ - boost::asio::io_service 在 win_mutex 锁中崩溃

我一直在使用boost::asio时遇到问题,其中使用全局io_service实例创建的计时器和/或套接字在构造期间崩溃。发生崩溃的系统如下:Windows7适用于Windows桌面的VisualStudio2013Express;v12.0.31101.00更新4Boost1.57,动态链接,使用多线程编译,例如boost_thread-vc120-mt-gd-1_57.dll我已经能够在以下简化代码中重现该问题://文件global_io_service.h#ifndefINCLUDED_GLOBAL_IO_SERVICE_H#defineINCLUDED_GLOBAL_IO_SE

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++ - 开发人员无法执行 .exe 错误 193 : %1 not a valid win32 application

所以我试图像往常一样测试运行我的开发c++,它说无法执行location/name.exe错误193:%1不是有效的win32应用程序。我还没有将编译器用于任何复杂的东西。#include#include#definePI3.14intmain(){intr=3;floatarea=PI*pow(r,2);printf("theareaofthecircleis%f",area);return0;}我正在使用Devc++GCC(MinGW)编译器。它编译正确,但是当我尝试运行时,它收到此错误消息无法执行“C:\Users\SIMJONESNIGLTD\Desktop\clanguage

炸裂!Windows XP 2024 版,界面与操作吊打 Win11

戳下方名片,关注并星标!回复“1024”获取2TB学习资源!👉体系化学习:运维工程师打怪升级进阶之路4.0—  特色专栏  —MySQL / PostgreSQL / MongoDBElasticSearch / Hadoop / RedisKubernetes / Docker / DevOpsKafka / RabbitMQ / Zookeeper 监控平台 / 应用与服务 / 集群管理Nginx / Git / Tools / OpenStack大家好,我是民工哥!1985年Windows操作系统问世,经过不断的更新与升级,它已经成为全球最流行的操作系统之一,这也算的上是一个伟大的创造发