当前位置: 技术问答>linux和unix
Linux多线程间条件切换
来源: 互联网 发布时间:2017-04-11
本文导语: 各位大神,本人接触多线程编程不多,有个需求就是希望程序在达到一定要求时进行切换,并且两个线程之间不停的切换。 例如:有个全局变量gnum=0,线程1首先执行,内容是不停的自加gnum,当gnum > 5,线程1挂起,开...
各位大神,本人接触多线程编程不多,有个需求就是希望程序在达到一定要求时进行切换,并且两个线程之间不停的切换。
例如:有个全局变量gnum=0,线程1首先执行,内容是不停的自加gnum,当gnum > 5,线程1挂起,开始执行线程2,线程2不停的自减,直至gnum 5) {
if (hungry)
pthread_cond_signal(&cond);
full = 1;
pthread_cond_wait(&cond, &lock);
}
full = 0;
++gnum;
printf("proc1 gnum=%dn", gnum);
pthread_mutex_unlock(&lock);
}
return NULL;
}
static void *proc2(void *arg)
{
while (1) {
pthread_mutex_lock(&lock);
while (gnum
例如:有个全局变量gnum=0,线程1首先执行,内容是不停的自加gnum,当gnum > 5,线程1挂起,开始执行线程2,线程2不停的自减,直至gnum 5) {
if (hungry)
pthread_cond_signal(&cond);
full = 1;
pthread_cond_wait(&cond, &lock);
}
full = 0;
++gnum;
printf("proc1 gnum=%dn", gnum);
pthread_mutex_unlock(&lock);
}
return NULL;
}
static void *proc2(void *arg)
{
while (1) {
pthread_mutex_lock(&lock);
while (gnum