验证linux下线程的同步运行

来源:互联网 发布:如何优化前端页面 编辑:程序博客网 时间:2024/05/29 09:13

在linux下创建两个线程,验证两个线程为同步运行

/**************************************************************************** File Name: 1.pth_create.c* Function : 1) *            2) * Author   : Xubing * Created Time: 2016年11月3日***************************************************************************/#include <stdio.h>#include <stdlib.h>#include <pthread.h>void Thread1()    //线程1{    sleep(2);    //延时2s,观察线程2的运行结果    printf("Thread1 is running\n");}void Thread2()    //线程2{    int i;    for(i = 0; i < 5; i++)      {        printf("Thread2 is running\n");    }}int main(){    int ret1;    int ret2;     pthread_t id1;    pthread_t id2;    ret1 = pthread_create(&id1, NULL, (void *)Thread1, NULL); //创建两个线程    ret2 = pthread_create(&id2, NULL, (void *)Thread2, NULL);    if(ret1 < 0)    {        printf("Error 1\n");    }    if(ret2 < 0)    {        printf("Error 2\n");    }    pthread_join(id1, NULL);    pthread_join(id2, NULL);        return 0;}

结果:线程2打印5次,线程1在线程2打印5次后稍停留片刻。

而在c程序中,先创建了线程1,而运行结果确实线程2先结束,证明两个线程同时运行,线程1因延时1s在线程2后打印。

0 0