红联Linux门户
Linux帮助

关于多线程的问题

发布时间:2008-06-06 19:56:56来源:红联作者:coachgao
我在虚拟机里安装了redflag workstation 5 , 并且在里面学编写多线程输入代码如下:
/* example.c */
#include
#include

void handle(void)
{
int i;
for(i=0;i<3;i++)
printf("my name is sub_thread.\n");
}

int main(void)
{
pthread_t id;
int i;
int ret;
ret = pthread_create(&id,NULL,(void *)handle,NULL);
if(ret!=0)
{
printf("Create pthread error!\n");
exit(1);
}
for(i=0;i<3;i++)
printf("my name is main_thread.\n");
pthread_join(id,NULL);
return(0);
}

然后编译 gcc example.c -lpthread -o example
运行 ./example
每次的结果都是:
my name is main_thread.
my name is main_thread.
my name is main_thread.
my name is sub_thread.
my name is sub_thread.
my name is sub_thread.

我就不明了,为什么次次的结果都一样的,为什么没有多线程的效果呢?
文章评论

共有 1 条评论

  1. tonyjaa 于 2008-06-14 02:06:40发表:

    可能是CPU为线程分配的时间片,已大于线程所必须的时间,
    你可以增加循环计数,或让主线程睡眠一些时间~