问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何实现if语句中几个线程的同步

发布网友 发布时间:2022-04-30 23:54

我来回答

1个回答

热心网友 时间:2022-06-20 20:53

1、使用pthread库执行多线程,这个是Linux下的线程库 Windows下应该有自己的API,不过这种东西一般还是以Linux为标准。pthread_create()创建一个线程,传入fun()的函数指针就行了。
2、例程:

#include <pthread.h>#include <stdio.h>#include <sys/time.h>#include <string.h>#define MAX 10pthread_t thread[2];pthread_mutex_t mut;int number=0, i;void *thread1(){printf ("thread1 : I'm thread 1\n");for (i = 0; i < MAX; i++){printf("thread1 : number = %d\n",number);pthread_mutex_lock(&mut);number++;pthread_mutex_unlock(&mut);sleep(2);}printf("thread1 :主函数在等我完成任务吗?\n");pthread_exit(NULL);}void *thread2(){printf("thread2 : I'm thread 2\n");for (i = 0; i < MAX; i++){printf("thread2 : number = %d\n",number);pthread_mutex_lock(&mut);number++;pthread_mutex_unlock(&mut);sleep(3);}printf("thread2 :主函数在等我完成任务吗?\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) //comment2printf("线程1创建失败!\n");elseprintf("线程1被创建\n");if((temp = pthread_create(&thread[1], NULL, thread2, NULL)) != 0) //comment3printf("线程2创建失败");elseprintf("线程2被创建\n");}void thread_wait(void){/*等待线程结束*/if(thread[0] !=0) { //comment4pthread_join(thread[0],NULL);printf("线程1已经结束\n");}if(thread[1] !=0) { //comment5pthread_join(thread[1],NULL);printf("线程2已经结束\n");}}int main(){/*用默认属性初始化互斥锁*/pthread_mutex_init(&mut,NULL);printf("我是主函数哦,我正在创建线程,呵呵\n");thread_create();printf("我是主函数哦,我正在等待线程完成任务阿,呵呵\n");thread_wait();return 0;}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
怎么样制作个人简历 上海海事大学对外交流多麽出国会不会容易一些 上海海事大学提前批今年要几号才能出来 怎么查找大学家长群 北京慧学堂在线教育学校的老师打电话来说要交3480元钱,给孩子半年的在... 左脸颊长青春痘是什么原因? 某商店上午9:00开始营业全天营业8小时下午几点关门 (2012?泗县模拟)某商店每天10:00-18:00营业,全天营业88小时. 某商店每天9:20-18:00营业,全天营业()小时。老师早上7:30到校,下午4... 商场营业时间是上午8:00-下午6:00,一位顾客向一位老先生嗯打听时间了... java 题目 什么是线程?如何实现多线程?如何实现线程同步? 说得具体些,通俗些。 Java如何实现多线程同步? 多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么? 低头即是海,抬头便是山是什么意思 《大灌篮》中的那个曾志伟的女儿是谁?好可爱哦~ 曾志伟女儿图片 曾宝仪是曾志伟的女儿吗? 多线程如何同步 曾志伟女儿罕见亮相,自曝48岁还未嫁的原因,究竟有何隐情? 蓝莓是水果吗,还是什么东西 曾志伟的女儿47岁,不结婚也不生孩子,如今怎样了? 曾志伟感情生活混乱,为什么女儿从不怨恨他? 曾志伟的女儿曾宝仪,现在状况如何? 曾志伟大女儿不结婚不生子,越来越像曾志伟,曾宝仪现在过得怎么样? 水果有什么特点写作文 宣纸有没有别称?分别是哪些? 曾志伟的女儿是阿雅吗? 蓝莓与其他水果比较有什么好处 《伊索寓言》的读后感 曾志伟有没有女儿?叫什么名字? 什么是线程的同步?为什么要实现线程的同步? 奶茶店招长期工干三四个月算不算长期? 同步多线程的同步 30个鹅蛋放多少盐多少水 求助一下去外面奶茶店打工大概一天需要干多长时间。需不需要加班 请问正常家用厨房水龙头,24小时不间断放水,10天能放掉多少吨水。 delphi 怎么实现多线程的同步 今天下午两点到四点下雨吗? 认为奶茶店长期和短期的界限是多久? 高考中的提前批综合评价招生会不会影响第一志愿 比如综合评价不行了 奶茶店都要工作十个小时? 2021年报了山大的综合评价招生过了不去面试会对高考有影响吗 综合素质评价招生模式更公平吗? 在一家私人的奶茶店上班,每天上十一个小时,每个月只有两千块,想直接走人不干了? 综合素质评价乱写有什么后果? 做火锅用调料 奶茶店上班累不累? 学生综合素质评价对高考录取有什么影 综合素质评定对录取有影响吗 奶茶店店员适合长期干吗?