当前位置: 技术问答>linux和unix
ubuntu下多线程程序运行出现:Assertion `mutex->__data.__owner == 0' failed异常
来源: 互联网 发布时间:2017-01-14
本文导语: 如题,编写的是一个单生产者多消费者的多线程程序,用来拷贝数据,在gcc下编译运行。程序在拷贝小文件(1M左右)的时候运行正常,但是在拷贝大文件的时候就出现了以上异常,根据程序的运行我可以判断我的程...
如题,编写的是一个单生产者多消费者的多线程程序,用来拷贝数据,在gcc下编译运行。程序在拷贝小文件(1M左右)的时候运行正常,但是在拷贝大文件的时候就出现了以上异常,根据程序的运行我可以判断我的程序应该没有死锁情况发生,但是就是在拷贝进行到一段时间后出现异常:“main: pthread_mutex_lock.c:62: __pthread_mutex_lock: Assertion `mutex->__data.__owner == 0' failed. 已放弃”,最后程序被终止,各位大侠知道这是什么原因引起的么?如何解决?(分不多,见谅!)
|
肯定是加解锁有问题,线程自己加的锁记得自己解除,如果忘解或者让别的线程解,行为未定义.
|
你的代码里有pthread_mutex_lock.c这个文件?你自己的源码吗?使用线程锁,一般不都是用linux提供的吗?