Chinaunix首页 | 论坛 | 博客
  • 博客访问: 536056
  • 博文数量: 67
  • 博客积分: 1625
  • 博客等级: 上尉
  • 技术积分: 1053
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-04 14:40
文章分类

全部博文(67)

文章存档

2012年(67)

分类: LINUX

2012-04-19 18:06:04

thread_join.c源代码:

 

#include                  //pthread_join()

#include                   //sleep()

#include                    //printf()

 

void *thread(void *str)               //返回指针值的函数

{

    int i;

    for (i = 0; i < 10; ++i)

    {

1       sleep(2);

        printf( "This in the thread : %d\n" , i );

    }

    return NULL;

}

 

int main()

{

    pthread_t pth;

    int i;

    int ret = pthread_create(&pth, NULL, thread, (void *)(i));

   

2   pthread_join(pth, NULL);

    printf("123\n");

    for (i = 0; i < 10; ++i)

    {

3        sleep(1);

        printf( "This in the main : %d\n" , i );

    }

   

    return 0;

}

 

//1:(注释掉1时)

   由于有2的存在所以线程pth,再返回到进程。

运行结果:

 tu1

 

//2:(注释掉2时)

   因为有3的存在所以是进程先打印,但是线程pth会插入以下,这个和1有密切关系:1时间长了可能差不进去,遇过也把1注释掉,那么会插进去的。

tu2

//3:(注释掉3时)

   因为有2存在所以结果和//1一样。

 

阅读(3423) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~