主题 : linux线程编程问题 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 88253
精华: 0
发帖: 5
金钱: 25 两
威望: 5 点
综合积分: 10 分
注册时间: 2013-03-06
最后登录: 2013-05-17
楼主  发表于: 2013-03-21 11:21

 linux线程编程问题

有AB两个线程,A线程负责获取视频移动侦测,B线程负责视频MJPEG编码,AB中都有select()函数判断是否有来自视频输入通道的数据,A线程中的参数num(阈值)是一个不断变化的整型参量,B线程的创建与否,要根据num的值来决定,比如如果num大于10就创建B线程,请问怎么实现?
我的做法如下,但是出现了问题。
我从新设立一个全局变量num2,在A线程中将num2=num;然后在主进程中利用num2的值判定是否创建线程B。我试了一下,发现这和线程嵌套没什么区别啊?(我记得线程之间不能嵌套)线程A还是意外终止,提示select函数超时。线程之间不是不能嵌套吗?请问应该怎么做啊?
pthread_create(&APid, 0, AData,NULL);
while(1)
{
    if(num2>5)//num2是个不断变化的值,num2==num
    {
        pthread_create(&BPid, 0, BData,NULL);
    }
}