日期:2014-05-16  浏览次数:20707 次

线程代码, 执行没有线程的效果, 为何? 请指教。
C/C++ code


#include <stdio.h>
#include <pthread.h>
#include <unistd.h>
#include <stdlib.h>

void* thread(void*)
{
    int i;
    char *uargv;
    for(i=0;i<30;i++)
        printf("This is a pthread.\n");

    return (void*)uargv;
}

int main(void)
{
    pthread_t id;
    int i,ret;
    ret=pthread_create(&id,NULL,&thread,NULL);
    /*if(ret!=0){
        printf ("Create pthread error!\n");
        exit (1);
    }*/

    for(i=0;i<30;i++)
        printf("This is the main process.\n");

    pthread_join(id,NULL);
    

    return (0);
}




执行的结果两种打印完全没有交错的




------解决方案--------------------
CPU太快了, 一个循环一次就跑完了.

在循环里加1秒的sleep。