c++ - pthread_mutex_lock 上的段错误

标签 c++ pthreads segmentation-fault mutex

当我尝试这样做时出现段错误

pthread_mutex_lock(&_mutex).

这真的很奇怪,我不确定是什么原因造成的。我已经在构造函数中初始化了 _mutex

pthread_mutex_init(&_mutex,NULL).

有什么我能做的吗?

最佳答案

解决了,我对此很恼火。 我想将 Producer* 作为参数发送给 Pthread 运行的函数,所以我使用了 &(*iter),其中 iter 是在生产者 vector 上运行的迭代器。

我几乎没有注意到它(理所当然地)是一个 vector < Producer* >,这意味着我一直在发送 Producer* *,它产生了未定义的结果。咕噜咕噜。显然,我没有注意到这一点,因为 Pthreads 是纯 C 语言,因此使用 void* 作为接受任何类型参数的唯一方式。

关于c++ - pthread_mutex_lock 上的段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/939747/

相关文章:

Arduino 的 C++ 结构多态性

c - 在不使用互斥量或全局变量的情况下停止所有线程的好方法是什么?

c - 在 C 中的列表末尾插入项目,产生段错误

c - 使用 toupper() 时遇到段错误

c++ - pthread 将对象作为参数传递给 pthread_create

debugging - 带pthread的电子围栏

c++ - 贪心算法编号 list

c++ - 如何使用 Lua 从表中的表中获取值?

c++ - 在 Qt 中将 dataChanged() 与 QTreeView 一起使用时, 'bottomRight' 是什么意思?

c++ - 在多线程程序中实现动态屏障的可能方法