当我尝试这样做时出现段错误
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/