当前位置: 技术问答>linux和unix
再加100分..请教Pthread的问题
来源: 互联网 发布时间:2016-12-11
本文导语: 原贴在这里 http://topic.csdn.net/u/20091125/18/c4d2e9b1-f2de-4957-adf6-4db810bd7fd2.html 我把所有的代码贴到了我的blog上,http://blog.csdn.net/wheresky/archive/2009/11/26/4877823.aspx 麻烦大家帮帮忙... 这个东西弄好了,可以很方便地当定时...
原贴在这里 http://topic.csdn.net/u/20091125/18/c4d2e9b1-f2de-4957-adf6-4db810bd7fd2.html
我把所有的代码贴到了我的blog上,http://blog.csdn.net/wheresky/archive/2009/11/26/4877823.aspx
麻烦大家帮帮忙...
这个东西弄好了,可以很方便地当定时器用的..目标就是这个.
我把所有的代码贴到了我的blog上,http://blog.csdn.net/wheresky/archive/2009/11/26/4877823.aspx
麻烦大家帮帮忙...
这个东西弄好了,可以很方便地当定时器用的..目标就是这个.
|
发一份到我qq邮箱,帮你看看
41031962@qq.com
41031962@qq.com
|
看了你的,单步调试正常,而多个线程一起运行会出现有线程挂起的话,那肯定是出现线程死锁了!
你的互斥量以及条件变量使用的太多,而且很混乱,你自己都没有完全理解,先把这些精简一下。
你的互斥量以及条件变量使用的太多,而且很混乱,你自己都没有完全理解,先把这些精简一下。
|
|
加油
|
mutex 与 条件变量一起用,来防止产生竞争条件而死锁。
|
mark
|
|
还有你的这个类里面存在着孙线程的现象
int main(int argc, char** argv)
{
LinuxThread *m_th1 = new LinuxThread;
char temp[] = "hello wordl!";
m_th1->Set(fun1, temp, 1100);
m_th1->Start();
。。。。
}
调用了Start函数,产生了一个线程;
调用Stop函数时,stop函数内部调用了WorkNow();
WorkNow();函数内部又调用了一次Start,又创建了一个线程。
关系好复杂,不知道楼主这样写要实现什么功能
int main(int argc, char** argv)
{
LinuxThread *m_th1 = new LinuxThread;
char temp[] = "hello wordl!";
m_th1->Set(fun1, temp, 1100);
m_th1->Start();
。。。。
}
调用了Start函数,产生了一个线程;
调用Stop函数时,stop函数内部调用了WorkNow();
WorkNow();函数内部又调用了一次Start,又创建了一个线程。
关系好复杂,不知道楼主这样写要实现什么功能