本文介绍了做睡睡眠功能的所有线程或只是一个谁打电话吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我与pthread的在Linux(gzip)编程?我想线程睡眠很短的时间等待着什么。我想使用睡眠()了nanosleep()或usleep()函式或者也可以是可以做到这一点。我想问的是:做睡睡眠功能的所有线程或只是一个谁打电话吗?任何建议或引用是AP preciate。
无效*的start_routine(){
/ *我只是叫睡眠功能,在这里* /
睡眠(1); / *睡眠所有线程或只是谁把它称为一个?
怎么样了nanosleep(),usleep()函式,其实我
想谁打电话睡眠功能可以在螺纹
微秒或毫秒入睡。
* /
...
}INT主(INT ARGC,字符** argv的){
/ *我刚刚创建的线程在这里* /
在pthread_create(......);
...
返回0;
}
我的测试程序:
的#define _GNU_SOURCE
#包括LT&;&pthreads.h中GT;
#包括LT&;&stdio.h中GT;
#包括LT&;&stdlib.h中GT;
#包括LT&;&sched.h中GT;
#包括LT&;&unistd.h中GT;无效*的start_routine(无效* j)条{ 无符号长总和;
INT I;
INT JJ;
JJ =(INT)焦耳;
做{
总和= 1;
对于(i = 0; I<千万,我++){
总和=总和*(总和+ I);
}
如果(JJ == 0){
的printf(\\ 033 [22;33米[JJ%D%LD] \\ t的,JJ,总和);
睡眠(1);
}
其他{
的printf(\\ 033 [22;34米[JJ%D%LD] \\ t的,JJ,总和);
} }而(1); 了pthread_exit((无效*)0);
}
INT主(INT ARGC,CHAR *的argv [])
{
cpu_set_t cpuset;
的pthread_t螺纹[2];
INT I;
I = 0;
CPU_ZERO(安培; cpuset);
CPU_SET(I,&放大器; cpuset); 在pthread_create(安培;螺纹[0],NULL,的start_routine,(无效*)ⅰ);
pthread_setaffinity_np(线程[0],sizeof的(cpu_set_t),放大器; cpuset);
I = 1;
CPU_ZERO(安培; cpuset);
CPU_SET(I,&放大器; cpuset);
在pthread_create(安培;螺纹[1],NULL的start_routine,(无效*)ⅰ);
pthread_setaffinity_np(线程[1],sizeof的(cpu_set_t),放大器; cpuset);
了pthread_exit(NULL);
}
解决方案
法术它:
The linux one is just as clear:
There are however a few erroneous references which maintain otherwise. linux.die.net used to state sleep
causes the process to wait.
这篇关于做睡睡眠功能的所有线程或只是一个谁打电话吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!