pthreads相关内容

如何修复 gcc 错误:在无效之前预期

所以我正在编写一个使用 pthreads 来管理所有 IO 的点对点聊天客户端,当我编译文件时 gcc 给了我错误 client.c:在函数‘accepted_daemon’中:client.c:115:1: 错误:在“void"之前预期“while"空白 *^client.c:在函数‘listen_daemon’中:client.c:176:1: 错误:在“int"之前预期“while"int ..
发布时间:2021-12-31 22:45:23 其他开发

线程的并行合并排序/比 Seq 慢很多/.合并排序.帮助

http://pastebin.com/YMS4ehRj ^ 这是我对并行归并排序的实现.基本上我所做的是,对于每个拆分,前半部分由一个线程处理,而后半部分是顺序的(即)说我们有一个包含 9 个元素的数组,[0..4] 由线程 1,[0..1] 由线程 2 处理,[5..6] 由线程 3 处理(请查看源代码以进行澄清). 其他一切都保持不变,比如合并.但问题是,这比归并排序慢得多,甚至 ..
发布时间:2021-12-30 21:40:47 其他开发

您使用哪些并行编程 API?

考虑到当今多核和多处理硬件的巨大重要性,试图了解人们目前实际上是如何编写并行代码的.对我来说,占主导地位的范式似乎是 pthreads(POSIX 线程),它在 Linux 上是原生的,在 Windows 上可用.HPC 人员倾向于使用 OpenMP 或 MPI,但在 StackOverflow 上这些似乎并不多.或者您是否依赖 Java 线程、Windows 线程 API 等而不是可移植标准?在 ..
发布时间:2021-12-30 21:29:12 其他开发

CPU Affinity Masks(将线程放在不同的 CPU 上)

我有 4 个线程,我试图设置线程 1 在 CPU 1 上运行,线程 2 在 CPU 2 上运行,等等.但是,当我运行下面的代码时,关联掩码返回正确的值,但是当我对线程执行 sched_getcpu() 时,它们都返回它们在 CPU 4 上运行. 有人知道我的问题是什么吗? 提前致谢! #define _GNU_SOURCE#include #include #include #inc ..
发布时间:2021-12-30 21:28:33 服务器开发

pthread_once() 中的竞争条件?

我在一个线程中有一个 std::future,它正在等待另一个线程中设置的 std::promise. 编辑: 用一个示例应用程序更新了问题,该应用程序将永远阻止: 更新:如果我使用 pthread_barrier 代替,下面的代码不会阻塞. 我创建了一个测试应用程序来说明这一点: 非常基本的 foo 类创建了一个 thread,它在它的 run 函数中设置了一个 prom ..
发布时间:2021-12-29 10:12:18 C/C++开发

如何查询 pthread 以查看它是否仍在运行?

在我的析构函数中,我想干净地销毁一个线程. 我的目标是等待一个线程完成执行,然后销毁该线程. 我发现关于查询 pthread 状态的唯一方法是 pthread_attr_setdetachstate 但这只会告诉您您的主题是否是: PTHREAD_CREATE_DETACHED PTHREAD_CREATE_JOINABLE 这两者都与线程是否仍在运行无关. 如何查 ..
发布时间:2021-12-28 22:33:59 其他开发

cmake 和 libpthread

我正在运行 RHEL 5.1 并使用 gcc. 我如何告诉 cmake 将 -pthread 添加到编译和链接中? 解决方案 @Manuel 参与其中.您也可以添加编译器选项,如下所示: 如果你有 CMake 3.1.0+,这个变得更容易: set(THREADS_PREFER_PTHREAD_FLAG ON)find_package(需要线程数)target_link_li ..
发布时间:2021-12-26 21:26:35 其他开发

PThread 与 boost::thread?

在过去没有线程经验的情况下,C++ 中的哪种线程技术对初学者来说是最容易的?boost::thread 还是 pthreads? 解决方案 转到 boost::thread.它与密切相关即将推出的 C++ 标准线程,并且界面非常易于使用和习惯于 C++(RAII 而不是手动资源管理). ..
发布时间:2021-12-24 15:46:24 C/C++开发

将 struct 作为参数传递给 pthread

好的,我正在尝试通过 struct 将一对数字传递给 pthread 中的 pthread_create 函数.但是我传递的数字和调用函数时得到的数字是不同且随机的 这是struct 结构对{长 i,j;}; 在主里面 void main(){long thread_cmp_count = (long)n*(n-1)/2;long t,index = 0;结构对 *pair;pair ..
发布时间:2021-12-23 17:18:39 其他开发

从 main 调用 pthread_exit 可以吗?

当我从 main 调用 pthread_exit 时,程序永远不会终止.我希望程序完成,因为我正在退出程序的唯一线程,但它不起作用.好像挂了. #include #include #include int main(int argc, char *argv[]){printf("-one-\n");pthread_exit(NULL);printf("-二-\n");} Process Exp ..
发布时间:2021-12-17 23:44:33 其他开发

pthread_mutex_lock 是如何实现的

我只是想知道在 Unix 中如何实现与线程之间的同步相关的功能.例如,当我调用 pthread_mutex_lock 时会发生什么?是否有任何使用中的指针?参考源代码真的很有帮助. 解决方案 它既复杂又因 Unix 变体而异. 例如,在 Linux 中,使用了一个名为 Futex(Short for Fast Userspace Mutex)的系统. 在该系统中,对用户空间中的 ..
发布时间:2021-12-15 00:08:43 服务器开发

如何从任意 pthread_t 获取线程 ID?

我有一个 pthread_t,我想改变它的 CPU 亲和性.问题是我使用的是 glibc 2.3.2,它没有 pthread_setaffinity_np().不过没关系,因为 pthread_setaffinity_np() 本身就是 sched_setaffinity() 的包装器,它可以通过传递线程 ID 而不是进程 ID 来调用以设置任意线程的亲和性. 但是 ... sched_se ..
发布时间:2021-12-14 23:48:18 服务器开发