linux C语言系统编程多线程学习实例

来源:互联网 发布:smart200编程软件v2.3 编辑:程序博客网 时间:2024/05/16 00:24

linux C语言系统编程多线程学习实例


一、测试C语言代码

/*  * multiple_thread.c :  c multiple thread programming in linux  *author : weifanghai  *time : 2017/12/6*/#include <pthread.h>#include <stdio.h>#include <sys/time.h>#include <string.h>#define MAX 10pthread_t thread[2];pthread_mutex_t mut;void *thread1(){               int number=0, i;        printf ("thread1 : I'm thread 1\n");        pthread_mutex_lock(&mut);        for (i = 0; i < MAX; i++)        {                printf("thread1 : number = %d\n",number);                number++;                sleep(1);        }pthread_mutex_unlock(&mut);        printf("thread1, are you waiting for me , main function?\n");        pthread_exit(NULL);}void *thread2(){    int number=0, i;        printf("thread2 : I'm thread 2\n");pthread_mutex_lock(&mut);        for (i = 0; i < MAX; i++)        {                printf("thread2 : number = %d\n",number);                   number++;                   sleep(1);        }        pthread_mutex_unlock(&mut);        printf("thread2, are you waiting for me , main function?\n");        pthread_exit(NULL);}void thread_create(void){        int temp;        memset(&thread, 0, sizeof(thread));          //comment1        /*创建线程*/        if((temp = pthread_create(&thread[0], NULL, thread1, NULL)) != 0)  //comment2                     printf("failed to create thread1!\n");        else                printf("success to create thread1!\n");        if((temp = pthread_create(&thread[1], NULL, thread2, NULL)) != 0)  //comment3                printf("failed to create thread2!");        else                printf("success to create thread2!\n");}void thread_wait(void){        /*等待线程结束*/        if(thread[0] !=0)           {             //comment4                    pthread_join(thread[0],NULL);                printf("thread1 all done!\n");          }        if(thread[1] !=0)            {                  //comment5               pthread_join(thread[1],NULL);                printf("thread2 all done!\n");         }}int main(){        /*用默认属性初始化互斥锁*/printf("start!\n");        pthread_mutex_init(&mut,NULL);        printf("I am main function, I am creating threads now!\n");        thread_create();        printf("I am main function, I am waiting all threads have been done completely!\n");        thread_wait();        return 0;}

二、执行结果


原创粉丝点击