IO 同步互斥线程作业5.10

线程进程基础3 这种策略适用于长作业时间的进程,但可能导致短作业等待时间过长,造成不公平和低效率。1.互斥锁(Mutex):通过pthread_mutex_init、pthread_mutex_lock和pthread_mutex_unlock等函数实现线程间的互斥同步。1、快速:共享内存是一种高效的进程间通信方式,因为它直接在进程之间共享内存区域,不需要复制数据,避免了数据的拷贝开销,提高了访问数据的速度。3、实时性:由于共享内存是直接在进程之间共享数据,进程可以实时地读取和修改共享内存中的数据,实现了实时更新和同步。 阅读详情

在一个进程中,创建一个子线程。
主线程负责:向文件中写入数据
子线程负责:从文件中读取数据
要求使用线程的同步逻辑,保证一定在主线程向文件中写入数据成功之后,子线程才开始运行,去读取文件中的数据

#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <dirent.h>
#include <sys/wait.h>
#include <pthread.h>

int flag = 1;
void* run(void* arg)
{
	while(1){
		while(1){
			if(flag == 0){break;}
		}
		//子线程读数据
		int fd =open("./data.txt",O_RDONLY);
		char buf[64]={0};
		read(fd,buf,64);
		printf("读到的数据为:%s\n",buf);
		close(fd);

		flag = 1;
	}

}
int main(int argc, const char *argv[])
{
	pthread_t id;
	if(pthread_create(&id,0,run,0) != 0)
	{
		perror("pthread_create");
		return 1;
	}
	while(1)
	{
		while(1)
		{
			if (flag == 1){break;}
		}
		//主线程向文件中写入数据
		int fd = open("./data.txt",O_WRONLY | O_CREAT | O_TRUNC,0666);
		char buf[64]={0};
		int size =0;
		printf("请输入数据:\n");
		scanf("%s",buf);
		while(getchar() != '\n');
		size = strlen(buf);
		write(fd,buf,size);
		close(fd);
		
		flag = 0;
	}
	return 0;
}

美团外卖mtgsig 1.2逆向工程:从补环境到签名生成全解析 本文深入解析了美团外卖mtgsig 1.2签名算法的逆向工程全流程。从环境检测原理与补环境实战入手,详细拆解了签名JSON中每个关键字段的生成逻辑,并重点剖析了核心签名a2的生成步骤,涉及设备指纹、MD5、AES加密等关键技术。最后提供了构建签名生成器的实践思路与常见坑点,为理解复杂风控体系提供了完整的技术视角。 阅读详情

相关推荐

virtuoso根据原理图绘制版图并联接_virtuoso画原理图

Virtuoso Schematic Editor 电路仿真一、Virtuoso Schematic Editor 实验目的:掌握电原理图(schematic)设计输入方法。 [1]启动 IC Design 软件 启动 软件: 开机后运行......2.绘制原理图 新建工程后打开的是默认的原理图文件 SCHEMATIC1 PAG...存盘 完成原理图的绘制后,将原理图存盘. 三 . 用 Check...

weixin_33536190的博客 4144

0804|IO进程线程day7 【重点】线程的同步互斥(互斥锁、信号量、条件变量的概念及基本操作)

互斥锁的工作原理以及步骤(创建、上锁、解锁、销毁);信号量的工作原理以及相关函数(创建、P操作、V操作、销毁);条件变量的工作原理以及相关函数(创建、休眠、唤醒、销毁);有关练习:线程拷贝、顺序执行线程、创建3个线程并顺序执行

Smallxu_的博客 462

告别环境配置焦虑:在Win10的Ubuntu子系统里搞定CSAPP实验环境(附32/64位库编译指南)

本文详细介绍了如何在Win10的Ubuntu子系统中搭建CSAPP实验环境,包括WSL 2的安装与配置、32/64位库的编译指南以及高效开发工具链的设置。通过优化WSL性能和使用实用技巧,开发者可以轻松应对CSAPP实验中的环境配置问题,提升学习效率。

weixin_30443813的博客 296

线程的同步实验

实验二 线程的同步 一、实验目的 进一步掌握windows系统环境下线程的创建和撤销 熟悉windows系统提供的线程同步API(是 WINDOWS提供给应用程序与操作系统的接口) 使用windows系统提供的线程同步API解决实际问题 二、实验准备 等待对象 等待一个对象 等待多个对象 WaitForSingleObject() WaitForMultipleObjec...

G453473123的博客 2052

MIPS-5级流水线CPU

一、流水线CPU 流水线CPU就是指将一条分解为多步,在同一周期内进行多条指令的同时执行。MIPS五级流水线就是将指令分为:取指(IF),译码(ID),执行(EX),访存(MEM),写回(WB)五个阶段。举个例子: 比如第二条指令lui $t2,0x2100 在流水线CPU中执行的就是 可以看到在200-300ns的周期里,IF阶段取到0x00400004处的指令,300-400ns,这条指令到了ID阶段,而IF阶段执行下一条指令。400-500ns,执行这条指令,ALU的结果为0x2100

weixin_43877853的博客 2万+

深度学习入门:使用CMSIS-NN在微控制器上部署模型的完整指南与Python Jupyter实践

CMSIS-NN是ARM为Cortex-M系列微控制器设计的神经网络库。它旨在提供一套高效、轻量级的神经网络API,使得开发者可以在资源受限的微控制器上运行深度学习模型。CMSIS-NN优化了各种常见的神经网络层,如卷积层、全连接层等,确保它们在微控制器上的运行效率。# 定义模型])# 编译模型# 训练模型这样,我们就得到了一个简单的手写数字识别模型。注意:为了简洁和清晰,本文中的代码可能不是最优的或最完整的实现。为了获得完整的项目和更多的优化技巧,请下载完整项目。

m0_57781768的博客 5882

python 多线程 异步io_Python 10:线程、进程、协程、异步io

Python 10:线程、进程、协程、异步io1、概念2、线程3、进程4、协程5、事件件驱动模型6、异步io7、作业一、概念1、进程:程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种执行的程序就称之为进程。(程序以一个整体的形式暴露给操作系统。里面包含对各种资源的调用,内存的管理,网络接口的调用等,即对各种资源管理的集合)程序和进程的区别就在于:程序是指令的集合,它是进...

weixin_39960920的博客 257

2026年运维工程师常见面试选择题

这篇文章总结了30道Linux运维面试常见问题及解析,涵盖基础命令、系统监控、故障排查、数据库、缓存、容器编排等多个方面。主要内容包括: 基础命令使用:如df查看磁盘、free查看内存、top监控进程等 系统监控与故障排查:负载判断、端口检查、进程管理等 中间件相关:Nginx状态码、MySQL主从复制、Redis缓存问题 容器技术:Docker优势、Kubernetes作用 运维理念:高可用、监控告警、发布策略、备份容灾 工作原则:故障处理优先级、运维工程师核心能力 文章不仅提供标准答案,还解析了各命令的

不务正业的猿 193

2024.1.5 IO进程线程 作业

4>使用三个线程完成:线程1输出字符A线程2输出字符B线程3输出字符C要求输出结果为:ABCABCABCABCABC...3>使用三个线程完成两个文件的拷贝,线程1完成拷贝前一半,线程2完成拷贝后一半,主线程回收两个分支线程的资源。1>将互斥机制代码实现。2>将同步机制代码实现。

m0_63196682的博客 497

RK3588 , 基于mpp 解码 Jpeg To RGB

本文介绍了在RK3588开发板上使用Rockchip MPP(Media Process Platform)硬件加速接口将JPEG图像解码为RGB格式的完整流程。主要包括三个关键步骤:1) 读取JPEG文件数据;2) 配置MPP解码器,包括初始化上下文、设置RGB888输出格式和解码参数;3) 执行解码任务并将结果保存为图像文件。通过硬件加速,该方法能高效完成JPEG到RGB的转换,适用于嵌入式多媒体处理场景。

J。 1210

【信息科学与工程学】【物理/化学科学和工程技术】第八篇 光学07

对于光源-探测器距离 ρ, 稳态漫反射率 R(ρ) ≈ (1/(4π)) [ z₀ (μ_eff + 1/r₁) exp(-μ_eff r₁)/r₁² + (z₀ + 2z_b) (μ_eff + 1/r₂) exp(-μ_eff r₂)/r₂² ], 其中 μ_eff = √(3μ_a(μ_a+μ_s’)), z₀=1/μ_s’, z_b 与边界条件有关。通过测量光纤各点的布里渊频移 ν_B(z) 来得到应变/温度分布:Δν_B(z) = C_ν,ε Δε(z) + C_ν,T ΔT(z)。

weixin_49199313的博客 327

IO进程线程作业day5

6> 使用有名管道完成两个进程的相互通信(提示:可以使用多进程或多线程完成)2> 将无名信号量的代码实现重新敲一遍。3> 将条件变量的代码实现重新敲一遍。4> 将无名管道的代码实现重新敲一遍。5> 将有名管道的代码实现重新敲一遍。1> 将互斥机制的代码实现重新敲一遍。

m0_74384179的博客 629

基于 YOLOv26 的电路焊点虚焊检测系统:AI 质检实战

本文介绍了一种基于YOLOv26的电路焊点虚焊检测系统,利用深度学习技术实现自动化质检。系统能识别虚焊、桥接、少锡等8种常见焊点缺陷,具有高精度、实时性和强鲁棒性等特点。文章详细阐述了系统架构,包括数据采集、预处理、YOLOv26检测模型和后处理模块,并提供了代码实现的关键部分,如数据预处理增强和模型训练配置。该系统可显著提高电子制造业的质检效率和准确性。

一键难忘的博客 690

Linux学习 IO进程与线程: day4

【复习】 库:可执行代码的二进制形式 静态库:编译时 动态库(共享库):运行时 便于复用 进程: 和程序的区别: 三段:数据段、正文段、堆栈段 分类:交互进程、批处理、守护进程 状态:运行态R、等待态、暂停态T、死亡态x、僵尸态Z 命令:ps -aux/-ef、top、kill、bg\fg 函数:fork、wait/waitpid、exit/_exit、execvpe 守护进程:1.fork 2.setsid 3.chdir...

haogewudi666的博客 602

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

IO进程线程day6作业

【代码】IO进程线程day6作业。

Whhhhhh123的博客 642

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

IO进程线程day5作业

在一个进程中,创建一个子线程。主线程负责:向文件中写入数据 子线程负责:从文件中读取数据 要求使用线程的同步逻辑,保证一定在主线程向文件中写入数据成功之后,子线程才开始运行,去读取文件中的数据。

2301_79612992的博客 673

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

嵌入式学习-IO线程与进程-Day7、8

僵尸进程指子进程退出后,父进程没有为其回收资源子进程退出时会发出SIGCHLD信号,可以捕获信号将该进程回收。

weixin_51597107的博客 545

【嵌入式学习】IO进程线程-Day5-进程线程通信

4> 使用三个线程完成:线程1输出字符’A’,线程2输出字符’B’,线程3输出字符’C’,要求输出结果为:ABCABCABCABCABC…3> 使用三个线程完成两个文件的拷贝,线程1完成拷贝前一半,线程2完成拷贝后一半,主线程回收两个分支线程的资源。1> 将互斥机制代码重新实现一遍。2> 将同步机制代码重新实现一遍。5> 周末完成C语言基础测试题。

BH6AEV的博客 475

IO作业5.0

4> 使用三个线程完成:线程1输出字符'A',线程2输出字符'B',线程3输出字符'C',要求输出结果为:ABCABCABCABCABC...3> 使用三个线程完成两个文件的拷贝,线程1完成拷贝前一半,线程2完成拷贝后一半,主线程回收两个分支线程的资源。1> 将互斥机制代码重新实现一遍。2> 将同步机制代码重新实现一遍。

mmj12的博客 448

C++多线程以及线程池

1 线程 1.1 简介   线程(英语:thread)是操作系统能够进行运算调度的最小单位。大部分情况下,它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。在Unix System V及SunOS中也被称为轻量进程(lightweight processes),但轻量进程更多指内核线程(kernel thread),而把用户线程(user thread)称为线程。   同一进程中的多条线程将共享该进程中的全部系统资源

梦的灰色边沿... 5975

3.19作业

答:由于多线程通信时,多个线程会争抢运行临界区,即竞态,又由于线程的自然运行状态无法预测,在临界区的任何代码中都可能随时结束运行,导致代码的逻辑出现问题,所以多线程编程的核心,其实就是对处于竞态的临界区做出保护,就有了同步和互斥机制,互斥是多个线程操作拥有临界资源的临界区的时候,一旦有一个线程正在操作的时候,其他线程都不能运行这段拥有临界资源的临界区,直到第一个线程运行结束, 剩下的其他线程再去抢夺运行权,同步可以简单的理解成有顺序的互斥,通过互斥的手段,安排好每一个线程的运行顺序。

2201_75885428的博客 844

IO进程day5周末作业

使用三个线程完成两个文件的拷贝,线程1拷贝前半部分,线程2拷贝后半部分,总线程回收分支线程。使用三个线程,线程1输出A,线程2输出B,线程3输出C。

2201_75900810的博客 450

8.9(Day 5)IO进程线程

【代码】8.9(Day 5)IO进程线程。

weixin_69367386的博客 281

嵌入式学习-IO进程线程-Day5

【代码】嵌入式学习-IO进程线程-Day5。

m0_56018621的博客 447

8月3日 IO进程线程作业

编写一个程序,开启3个线程,这3个线程的ID分别为ABC,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示,如ABCABC……依次递推; 提示:A只能叫醒B,B只能唤醒C,C只能唤醒A;......

qq_56095954的博客 134

IO进程寒假作业DAY6

使用互斥锁 和 信号量分别实现5个线程之间的同步

Ryan_Gosling的博客 309
上一篇: IO 父子进程计算长方形面积 5.9(未完待续)
下一篇: IO 练习 5.11作业
风铃响了
博客等级 码龄4年 76粉丝 56原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值