linux下线程问题?
* example.c*/
#include <stdio.h>
#include <pthread.h>
void thread(void)
{
int i;
for(i=0;i<3;i++)
printf("This is a pthread.n");
}
int main(void)
{
pthread_t id;
int i,ret;
ret=pthread_create(&id,NULL,(void *) thread,NULL);
if(ret!=0){
printf ("Create pthread error!n");
exit (1);
}
for(i=0;i<3;i++)
printf("This is the main process.n");
pthread_join(id,NULL);
return (0);
}
此程序时linux下线程编程的例子。网上介绍说:
运行example1,我们得到如下结果:
This is the main process.
This is a pthread.
This is the main process.
This is the main process.
This is a pthread.
This is a pthread.
再次运行,我们可能得到如下结果:
This is a pthread.
This is the main process.
This is a pthread.
This is the main process.
This is a pthread.
This is the main process.
但是:
我在机器上却是一直时一种结果:
This is a pthread.
This is a pthread.
This is a pthread.
This is the main process.
This is the main process.
This is the main process.
请问为什么呢?
另外如果照网上介绍的那样, 那这个程序就不是自上而下按顺序执行的了?
请高手帮忙
问题点数:10、回复次数:2Top
1 楼I_Love_CPP(Never stop!)回复于 2006-07-04 21:25:11 得分 0
不要死读书啊,兄弟。。。。
作者那么写的意思是没有设定优先级别的
多线程执行并不是按某种特定的顺序的,
你运行几次是相同的也并不能证明这个真理是错的。
如果你真想得到他那样的效果,你再多开点线程,让你的CPU繁忙起来,
你看顺序乱不乱。。。。
Top
2 楼fytzzh(我爱summer)回复于 2006-07-09 23:50:51 得分 0
建议在多CPU的机器上测试。这样才能测出问题来。
Top




