请众神帮个忙啊,linux下一个程序,出现了问题,求助啊!!紧急!!
问题是这样的:我写了一个linux下多线程处理数据大规模数据的程序,共有三个线程,第一个和第二个之间有锁保证同步,我第三个进程的意图是将分析好的数据写入数据库当中。当我包含进-lmysqlclinet_r这个包之后,发现pthread_cond_signal()这个函数没有起作用,也就是说,第一个线程并没有收到第二个线程为了让它继续而给它的信号量(在此之前这个线程已经wait了),第一个线程因此并没有被唤醒,我想请问诸位大神有没有解决的办法,紧急求助啊!!!在线等待大家的给力回答!!
作者: sujie8185620 发布时间: 2011-05-20
pthread_cond_wait 要等待两个信号
一个是pthread_cond_signal 释放的pthread_cond_t
一个是pthread_mutex_unlock释放的 pthread_mutex_t
看看着两个资源是不是都释放了?
一个是pthread_cond_signal 释放的pthread_cond_t
一个是pthread_mutex_unlock释放的 pthread_mutex_t
看看着两个资源是不是都释放了?
作者: fish_phenix 发布时间: 2011-05-20
刚刚检测了下,两个信号都已经发出了,但是wait并没有接受到。-lmysqlclinet_r这个东西里面会不会有什么全局的东西给屏蔽了我线程同步的机制啊。
作者: sujie8185620 发布时间: 2011-05-20
应该把你的代码贴出来看看。。
作者: qdhyc091 发布时间: 2011-05-20
如果不连接-lmysqlclinet_r,程序行为是正常的吗?
作者: justkk 发布时间: 2011-05-20