当前位置: 首页 > ds >正文

9.5 IO-线程day5

信号量打印ABC

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <25061head.h>
sem_t sem[1];
void *callback(void *arg)
{while(1){sem_wait(&sem[0]);printf("A\n");sleep(1);sem_post(&sem[1]);}pthread_exit(NULL);
}
void *callback2(void *arg)
{while(1){sem_wait(&sem[1]);printf("B\n");sleep(1);sem_post(&sem[2]);}pthread_exit(NULL);
}
void *callback3(void *arg)
{while(1){sem_wait(&sem[2]);printf("C\n");sleep(1);sem_post(&sem[0]);}pthread_exit(NULL);
}int main(int argc, const char *argv[])
{sem_init(&sem[0],0,1);sem_init(&sem[1],0,0);sem_init(&sem[2],0,0);pthread_t tid,tid2,tid3;if(pthread_create(&tid,NULL,callback,NULL)!=0){printf("pthread_create error");return -1;}if(pthread_create(&tid2,NULL,callback2,NULL)!=0){printf("pthread_create error");return -1;}if(pthread_create(&tid3,NULL,callback3,NULL)!=0){printf("pthread_create error");return -1;}pthread_join(tid,NULL);pthread_join(tid2,NULL);pthread_join(tid3,NULL);sem_destroy(&sem[0]);sem_destroy(&sem[1]);sem_destroy(&sem[2]);return 0;
}

http://www.xdnf.cn/news/20294.html

相关文章:

  • SQL Sever2022安装教程
  • LKT4202UGM重新定义物联网设备安全标准
  • python 自动化在web领域应用
  • Karmada v1.15 版本发布
  • 如何选择文件夹然后用vscode直接打开
  • 23种设计模式——装饰器模式(Decorator Pattern)详解
  • Meta AI眼镜Hypernova量产临近,微美全息构筑护城河引领人机交互变革浪潮
  • Ubuntu 22.0安装中文输入法
  • 分布式事务的Java实践
  • 面试官问:你如何提高工作效率?
  • 专项智能练习(计算机动画基础)
  • java log相关:Log4J、Log4J2、LogBack,SLF4J
  • 安防芯片ISP白平衡统计数据如何提升场景适应性?
  • 微信小程序如何进行分包处理?
  • 源雀SCRM开源:企微文件防泄密
  • 2025职教技能大赛汽车制造与维修赛道速递-产教融合实战亮剑​
  • 【详细指导】多文档界面(MDI)的应用程序-图像处理
  • 第三方web测评机构:【WEB安全测试中HTTP方法(GET/POST/PUT)的安全风险检测】
  • Unity3D URP线性空间UI透明度混合解决方案
  • linux离线安装elasticsearch8.19.3
  • 3.4_第二行之_ipipe_init_early()
  • 通用虚拟示教器:让机器人教学像玩游戏一样简单
  • 从音频到文本实现高精度离线语音识别
  • 【FastDDS】概述 Library Overview
  • Ubuntu 24.04.2安装k8s 1.33.4 配置cilium
  • finalize() 方法介绍
  • unity 接入火山引擎API,包括即梦AI
  • flutter-使用fluttertoast制作丰富的高颜值toast
  • 从 ETL 到 Agentic AI:工业数据管理变革与 TDengine IDMP 的治理之道
  • Android8 binder源码学习分析笔记(二)