生产者-消费者正确实施
我正在尝试实现生产者-消费者模型,但遇到了一些问题。考虑代码 int number=0; void* master(void* p){ int i; pthread_t workers[5]; for(i=0;i<5;i+…
在 c++ 中出现分段错误使用 pthreads
我正在为我的操作系统类编写一个带有线程的程序。它必须在一个线程中计算斐波那契数列的 n 个值,并在主线程中输出结果。当 n > 时,我不断收到分段错…
pthread_create() 的参数 4 出现段错误
当我尝试运行此代码时,收到分段错误(核心转储)的错误消息。 注意:这是一个非常长的程序(几乎 600 行),所以我只发布了我“认为”相关的那些。如…
为什么在此示例中 pthread_join 没有正确关闭线程数组?
我正在尝试自学 pthreads 线程。我有以下源代码,它可以正确编译并运行: #include #include #define PTHREAD_COUNT 10 #define FREQ 5 void *thread_…
pthread 无法加入并出现未知错误
我计划使用 pthreads 和 mach 信号量来尝试基本上将并行计算分配给有限数量的 CPU,但我无法完全让测试程序正常工作。现在我有一些东西只是通过线程并…
在没有条件变量的情况下实现 pthread 之间的阻塞
我正在 Linux 上使用 pthreads 实现老板/工人设计模式。我想要一个老板线程不断检查工作,如果有工作,则唤醒正在睡觉的工作人员来完成工作。我的问题…
sem_init() 导致 SEGV
我有以下代码,它被 SEGV 信号杀死。使用调试器显示它被 main() 中的第一个 sem_init() 杀死。如果我注释掉第一个 sem_init() ,第二个会导致同样的问…
C++:如何定义类方法作为线程的启动例程(使用 pthread 库)
我有一个基类和派生类。 他们有一个虚拟函数 - virtual void action() 我如何将它传递给 *pthread_create()* 函数? 示例(有错误): class Base{ pr…
在 POSIX 中将整数值转换为 void* 并再次转换回来总是安全的吗?
这个问题几乎与我发现的其他一些问题重复,但这特别涉及 POSIX,并且是我多次遇到的 pthreads 中一个非常常见的示例。我主要关心当前的情况(即 C99 …