线程同步问题——锁

news2024/9/20 22:44:32

文章目录

    • 线程同步
    • 互斥锁(互斥量)
      • 相关操作函数
      • 应用
    • 死锁
    • 读写锁
      • 相关操作函数

线程同步

在这里插入图片描述
临界区——代码
临界数据——共享数据
原子操作:不可以被其他操作打断
必须的,用以保证数据的安全性
实现线程同步的方式:

  1. 互斥量(互斥锁)——死锁
  2. 读写锁——多读一写

互斥锁(互斥量)

在这里插入图片描述
在这里插入图片描述

相关操作函数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
不能采用另外的指针对mutex操作。
在这里插入图片描述

应用

  1. 全局区创建互斥量
  2. 主线程初始化
  3. 主线程阻塞——连接终止子线程
  4. 找到操作共享数据的位置(操作位置,不是定义位置)
  5. 在开始操作前 加锁
  6. 在操作结束后 解锁
  7. 主线程释放互斥量
    注意:主线程return 0;对子线程有影响,导致其直接结束了。可以使用pthread_exit(NULL);终止主线程。

死锁

在这里插入图片描述
死锁:因争夺共享资源而造成的一种等待的现象。
死锁场景:(加锁同一组互斥量时,就可能发生死锁)

  1. 忘记释放锁——可以使用 尝试加锁 不阻塞代码
  2. 重复加锁
  3. 多线程多锁,抢占锁资源——一个线程使用多个资源多个锁

读写锁

在这里插入图片描述
读写锁效率比互斥锁高,读锁并发执行,不会进行阻塞。

相关操作函数

在这里插入图片描述

rwlock:读写锁
rdlock:读锁
·wrlock`:写锁

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第十四章、【Linux】磁盘配额与进阶文件系统管理

14.1 磁盘配额 (Quota) 的应用与实作 14.1.1 什么是 Quota 在 Linux 系统中,由于是多用户多任务的环境,所以会有多人共同使用一个硬盘空间的情况发生, 如果其中有少数几个使用者大量的占掉了硬盘空间的话&#xff0c…

数字人会成为文旅行业的新增量吗?写实数字人定制包含哪些技术?

近年来,各大文旅机构均在围绕数字人展开了文旅营销创作,凭借着写实数字人定制技术,将数字人的人设、功能以及才艺得到创新,并由此在文旅形态上展开了诸多尝试。 比如会唱山歌多才多艺的数字人刘三姐,使用多种语言推介…

【Docker】Docker的工具实践及root概念和Docker容器安全性设置的详细讲解

前言 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。 📕作者简介:热…

css滤镜:drop-shadow

一、用法 drop-shadow( offset-x offset-y blur-radius spread-radius color ) offset-x:此参数设置图像的水平偏移。正值将创建右侧的偏移量,负值将创建左侧的偏移量。offset-y:此参数设置图像的垂直偏移。正值创建到底部的偏移量&#xff…

公众号套图制作教你打造独特商品宣传海报风格

在公众号的运营中,一个精美的海报设计可以吸引更多的关注和转发,提升文章的曝光度和传播效果。然而,对于没有设计经验的人来说,制作一个令人惊艳的海报可能是一项挑战。但是,现在有了乔拓云这个强大的工具,…

光伏、储能一体化监控及运维解决方案

前言 今年以来,在政策利好推动下光伏、风力发电、电化学储能及抽水蓄能等新能源行业发展迅速,装机容量均大幅度增长,新能源发电已经成为新型电力系统重要的组成部分,同时这也导致新型电力系统比传统的电力系统更为复杂&#xff0…

Mybatis ,Mybatis-plus列表多字段排序,包含sql以及warpper

根据 mybatis 根据多字段排序已经wrapper 根据多字段排序 首先根据咱们返回前端的数据列来规划好排序字段 如下: 这里的字段为返回VO的字段,要转换成数据库字段然后加入到排序中 示例,穿了 surname,cerRank 多字段,然后是倒序 false 首先创建好映射&am…

kotlin 编写一个简单的天气预报app(五)增加forcast接口并显示

参考资料 OpenWeatherMap提供了一个/forecast接口,用于获取未来几天的天气预报。你可以使用HTTP GET请求访问该接口,并根据你所在的城市或地理坐标获取相应的天气数据。 以下是一个示例请求的URL和一些常用的参数: URL: http://api.openwe…

AWS——01篇(AWS入门 以及 AWS之EC2实例及简单实用)

AWS——01篇(AWS入门 以及 AWS之EC2实例及简单实用) 1. 前言2. 创建AWS账户3. EC23.1 启动 EC2 新实例3.1.1 入口3.1.2 设置名称 选择服务3.1.3 创建密钥对3.1.4 网络设置——安全组3.1.4.1 初始设置3.1.4.2 添加安全组规则(开放新端口&…

用Javascript和表情符号制作URL动画

您可以在URL中使用表情符号(和其他图形unicode字符)。哇,太棒了。但似乎没有人去做。为什么?或许表情符号对普通网络平台来说太陌生了?又或许是怕触怒SEO大神而避之不及? 不管是什么原因,维恩图上“有可能没有人做”的…

NPOI库:C#中使用的强大工具箱,从入门到精通

*引言: 在软件开发中,Excel文件是一种常见且重要的数据存储和处理方式。为了简化Excel文件的读写操作,C --------------------------目录-------------------------- 一、安装NPOI库二、引入命名空间三、Excel文件的读取1. 打开Excel文件2. 读…

抄袭可耻,尊重原创

抄袭者的博客主页链接:MISAYAONE_OD机试 Py/Java/JS合集(A卷B卷),华为OD机试(JAVA)真题(A卷B卷),华为OD机试(Python)真题(A卷B卷)-CSDN博客 这个博…

30个前端开发中常用的JavaScript函数

🧑‍💻作者名称:DaenCode 🎤作者简介:啥技术都喜欢捣鼓捣鼓,喜欢分享技术、经验、生活。 😎人生感悟:尝尽人生百味,方知世间冷暖。 前言 在前端开发中通常会用到校验函数…

纯干货!打造TikTok爆款视频的是个要素!(记得收藏)

Tik Tok在海外经历了一系列遭遇引发了全球的关注,作为一款针对年轻受众的短视频分享应用,仅用3年多的时间在美国的用户数量就突破1亿,在今年一季度还成为全球下载量最高的移动应用。 在过去一年中,Tik Tok的新闻和热门视频频频出…

玩转新时代兴趣社交,伴伴打造新赛道

随着时代的发展,人们对于社交的需求也在不断地增加。从面对面社交到社交软件聊天再到现在的兴趣社交,无一不体现着年轻人多元化的社交需求。作为社交软件的行业龙头之一,伴伴平台为用户打造多元化社交场景,以兴趣作为社交的出发点…

Docker的安装和部署

目录 一、Docker的安装部署 (1)关闭防火墙 (2)关闭selinux (3)安装docker引擎 (4)启动docker (5)设置docker自启动 (6)测试doc…

TopSolid2021安装

安装TopSolid,选择要安装的功能,一般只安装Design即可,然后在“工具”选项卡一般只选择图示的两个就可以了 使用管理员权限运行文件 “TopSolid2021\Setup\Redist\Sentinel RMS License Manager\Tools\WlmAdmin.exe” 按图示操作&#xff1…

服务器运行python程序的使用说明

服务器的使用与说明 文章目录 服务器的使用与说明1.登录2.Python的使用2.1 服务器已安装python32.2 往自己的用户目录安装python31.首先下载安装包2.解压缩3.编译与安装 2.3 新建环境变量2.4 测试 3 创建PBS作业并提交 1.登录 windowsr打开运行命令窗口,在运行框中…

Springboot计算机课程教学辅助系统小程序【纯干货分享,免费领源码01616】

目 录 摘要 1 绪论 1.1课题背景 1.2研究现状 1.3springboot框架介绍 1.4小程序框架以及目录结构介绍 2 计算机课程教学辅助系统小程序系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 操作可行性分析 2.2 系统业务流程分析 2.3 系统功能…

SDN系统方法 | 10. SDN的未来

随着互联网和数据中心流量的爆炸式增长,SDN已经逐步取代静态路由交换设备成为构建网络的主流方式,本系列是免费电子书《Software-Defined Networks: A Systems Approach》的中文版,完整介绍了SDN的概念、原理、架构和实现方式。原文: Softwar…