/* 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.
我就不明了,为什么次次的结果都一样的,为什么没有多线程的效果呢?
tonyjaa 于 2008-06-14 02:06:40发表:
可能是CPU为线程分配的时间片,已大于线程所必须的时间,
你可以增加循环计数,或让主线程睡眠一些时间~