华清远见嵌入式学习——春节作业——2.6日

作业要求:

作业答案:

作业代码效果图

作业代码截图

作业代码

#include <myhead.h>//通过无名信号量实现线程间的同步
//定义三个无名信号量
sem_t sem1;
sem_t sem2;
sem_t sem3;//线程A  打印 Happy
void *A(void *arg)
{int n = 5;while(n--){sem_wait(&sem3);printf("Happy ");sem_post(&sem1);}pthread_exit(NULL);
}//线程B  打印 new
void *B(void *arg)
{int n = 5;while(n--){sem_wait(&sem1);printf("new ");sem_post(&sem2);}pthread_exit(NULL);
}//线程C  打印 year
void *C(void *arg)
{int n = 5;while(n--){sem_wait(&sem2);puts("year\n");sem_post(&sem3);}pthread_exit(NULL);
}int main(int argc, const char *argv[])
{//定义三个线程pthread_t tid1,tid2,tid3;//给无名信号量初始化sem_init(&sem1,0,0);	sem_init(&sem2,0,0);sem_init(&sem3,0,1);//创建三个线程if(pthread_create(&tid1,NULL,A,NULL) != 0){printf("tid1 create error\n");return -1;}if(pthread_create(&tid2,NULL,B,NULL) != 0){printf("tid2 create error\n");return -1;}if(pthread_create(&tid3,NULL,C,NULL) != 0){printf("tid3 create error\n");return -1;}	//回收三个线程pthread_join(tid1,NULL);pthread_join(tid2,NULL);pthread_join(tid3,NULL);//销毁三个无名信号量sem_destroy(&sem1);sem_destroy(&sem2);sem_destroy(&sem3);return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/455530.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从小白到入门webrtc音视频通话

0. 写在前面 先会骑车&#xff0c;再研究为什么这么骑&#xff0c;才是我认为学习技术的思路&#xff0c;底部付了demo例子&#xff0c;根据例子上面的介绍即可运行。 1. 音视频通话要用到的技术简介 websocket 介绍&#xff1a;1. 服务器可以向浏览器推送信息&#xff1b;2…

第十二章[模块]:12.2:模块的加载

一,导入模块要搜索的路径 1,要搜索的路径有哪些? 当前程序的执行目录。 环境变量 PYTHONPATH(如果设置了的话)指定的目录列表。 安装 Python 时配置的相关目录列表 2,得到具体的模块搜索目录 import sysfor path in sys.path:print(path) 运行结果 (macos平台): /Us…

安装PyInstaller的保姆级教程

一、安装PyInstaller之前首先要安装Python&#xff0c;小编这里安装的是Python3.9&#xff0c;目前&#xff08;2024/2/6&#xff09;匹配到的最高版本的PyInstaller的版本为6.3.0。需要安装Python的小伙伴可以去这里安装python详细步骤&#xff08;超详细&#xff0c;保姆级&a…

【ETOJ P1036】我踏马吃吃吃吃吃 题解(优先队列+贪心算法)

题目描述 有n个人在m个窗口打饭&#xff0c;因为每个人的需求不同&#xff0c;所以每个人的“窗口占用时间”也不同。第i个人的窗口占用时间为 t i t_i ti​。 请问如何安排这些人到窗口打饭&#xff0c;可以使得所有人等待的时间之和最小&#xff1f; 输入格式 第一行两个…

Linux 网络:PTP 简介

文章目录 1. 前言2. PTP(Precision Time Protocol​) IEEE 1588 协议简介2.1 PTP IEEE 1588 协议时间同步原理2.2 PTP IEEE 1588 协议时钟类型2.2.1 普通时钟(OC: Ordinary Clock)2.2.2 边界时钟(BC: Boundary Clock)2.2.3 透明时钟(TC: Transparent Clock)2.2.3.1 端对端透明时…

769933-15-5,Biotin aniline,用来标记和检测细胞膜上的特定蛋白质

您好&#xff0c;欢迎来到新研之家 文章关键词&#xff1a;769933-15-5&#xff0c;Biotin aniline&#xff0c;生物素苯胺 一、基本信息 产品简介&#xff1a;Biotin aniline, also known as Biotin aniline, is a molecular probe with strong reactivity. Its uniqueness…

SQLserver2008 r2 下载安装配置、使用、新建登录用户及通过Navicat远程连接

目录 一、下载 二、安装配置 1.安装 2.许可条款 3.安装程序支持文件 4.功能选择 5.实例配置 6.服务器配置 7.数据库引擎配置 8.Reporting Services 配置 9.安装进度 ​编辑 10.完成 三、使用 四、新建登录用户 1.新建登录名 2.常规 3.服务器角色 4. 用户映…

Unity3d Shader篇(三)— 片元半兰伯特着色器解析

文章目录 前言一、片元半兰伯特着色器是什么&#xff1f;1. 片元漫反射着色器的工作原理2. 片元半兰伯特着色器的优缺点优点&#xff1a;缺点&#xff1a; 3. 公式 二、使用步骤1. Shader 属性定义2. SubShader 设置3. 渲染 Pass4. 定义结构体和顶点着色器函数5. 片元着色器函数…

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Radio组件

鸿蒙&#xff08;HarmonyOS&#xff09;项目方舟框架&#xff08;ArkUI&#xff09;之Radio组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、Radio组件 单选框&#xff0c;提供相应的用户交互选择项。 子组件 无。 接口 …

Java面向对象 构造器

目录 构造器实例分析 测试类Person01的构造器分析 构造器 Java中的构造器是一种特殊的方法&#xff0c;用于初始化新创建的对象。构造器与类同名&#xff0c;并且没有返回类型。它主要用于设置对象的初始状态&#xff0c;也可以用于执行一些必要的操作&#xff0c;例如分配资源…

大模型|基础_word2vec

文章目录 Word2Vec词袋模型CBOW Continuous Bag-of-WordsContinuous Skip-Gram存在的问题解决方案 其他技巧 Word2Vec 将词转化为向量后&#xff0c;会发现king和queen的差别与man和woman的差别是类似的&#xff0c;而在几何空间上&#xff0c;这样的差别将会以平行的关系进行表…

读千脑智能笔记05_千脑智能理论

1. 现有的新皮质理论 1.1. 最普遍的看法是新皮质就像一个流程图 1.2. 特征层次理论 1.2.1. 该理论最大的弊端在于认为视觉是个静止的过程&#xff0c;就像拍一张照片一样&#xff0c;但事实并非如此 1.2.1.1. 眼睛每秒会快速转…