多线程理解之3

news2024/11/16 19:35:21

1.怎么解决多线程并发访问临界资源的产生的问题?
用锁 pthread_mutex_t mtx解决。

2.mtx锁的作用具体是什么?
先把临界资源锁起来,再把它打开,这样一来,多个执行流想要同时执行临界资源就不可以了,只能一个执行,等执行完,再把锁打开,方可放进其他执行流。

3.越多线程处理同一个问题,越快吗?
并不是,要看具体场景。

4.加锁了之后就是串行执行吗?会被切换吗?会有问题吗?
是串行执行,执行临界区代码执行一定是串行的,会被切换,但不会有问题,因为其他执行流进不去,申请不来被锁,因为那个被切换的执行流还没有解锁。

5.锁是不是一种临界资源,那怎么保护他的安全呢?
是一种临界资源,所以申请和释放锁的过程都是原子性操作。

6.从执行流的角度来看,CPU里的寄存器是什么?
寄存器的空间是被所以执行流共享的,但寄存器的内容是被每一个执行流私有的,是执行流的上下文。

7.锁如何实现自己保护自己?
所有的操作都是原子性操作,从头到尾只存在一个1,进行0与1之间的交换,而不是像过往一样对内存中的1进行复制。
al = 0;
mutex = 1 ;
al = 1 , mutex = 1;

在这里插入图片描述

8.什么叫重入?
在这里插入图片描述

9.可重入和线程安全的联系?
在这里插入图片描述

10.什么叫死锁?
持有锁的线程互相申请对方已占用的锁的状态叫死锁。

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

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

相关文章

[C++]string的使用及模拟实现

🥁作者: 华丞臧 📕​​​​专栏:【C】 各位读者老爷如果觉得博主写的不错,请诸位多多支持(点赞收藏关注)。如果有错误的地方,欢迎在评论区指出。 推荐一款刷题网站 👉LeetCode 文章目录一、stri…

Android Compose——Paging3

Paging3效果视频简述HiltRetrofit访问接口网络实例PagingSourceViewModelView效果视频 简述 本Demo采用HiltRetrofitPaging3完成,主要为了演示paging3分页功能的使用,下列为Demo所需要的相关依赖 //retrofitimplementation com.squareup.retrofit2:retr…

多线程之内功精修

文章目录一、常见的锁策略(一)悲观锁和乐观锁(二)读写锁和互斥锁(三)重量级锁和轻量级锁(四)挂起等待锁和自旋锁(五)公平锁和非公平锁(六&#xf…

nerdctl容器管理工具

nerdctl容器管理工具nerdctl简介nerdctl的两个版本安装nerdctl1.配置nerdctl自动补全2.将nerdctl设别名为dockernerdctl使用方法1、运行/计入容器2、容器管理3、镜像管理4、镜像构建nerdctl简介 k8s1.22版本及以上强制安装containerd,要求卸载Docker. 虽然Docker能干的事Conta…

嗨格式数据恢复的 10 种最佳替代方法

当您意识到自己删除了错误的文件时,您是否有过那种恐惧和无助的感觉?或者,也许您的计算机在一项重要任务到期的前一天死机了——您所有的辛勤工作突然消失了。 嗨格式数据恢复是一款流行的数据恢复软件应用程序,它为找回这些文件…

《人月神话》浅读一下吧(上)

1.焦油坑 1.什么是焦油坑 焦油坑是作者用来形容大型系统开发的一个概念。史前时代,恐龙、猛犸象、剑齿虎这些大型食肉动物碰到焦油坑也是没有办法挣脱的,而且越用力就越容易被沉入坑底。 而在项目中好像没有任何一个单独的问题会导致困难,每个…

Spring基础(一)

Spring基础(一)Spring是什么下载地址IOCAop导入对象创建Spring是什么 Spring是开源的J2EE应用程序框架,针对bean的生命周期进行管理的轻量级容器,其中轻量级是指jar包数量较少。 下载地址 https://repo.spring.io/ui/native/re…

堆与优先级队列

目录 一、堆 1、简介 2、堆的模拟实现 a、向下调整堆 b、向上调整堆 c、插入元素 d、删除堆的根结点 e、获得堆顶元素 二、优先级队列 1、简介 2、常用方法 3、Top-k问题 一、堆 1、简介 堆也是一种数据结构,将一组数据集合按照完全二叉树的方式存储…

C++ 算法进阶系列之从 Brute Force 到 KMP 字符串匹配算法的优化之路

1. 字符串匹配算法 所谓字符串匹配算法,简单地说就是在一个目标字符串中查找是否存在另一个模式字符串。如在字符串 ABCDEFG 中查找是否存在 EF 字符串。 可以把字符串 ABCDEFG 称为原始(目标)字符串,EF 称为子字符串或模式字符…

Docker搭建SonarQube服务 - Linux

Docker搭建SonarQube服务 - Linux 本文介绍如何在Linux服务器上使用docker简便并快速的搭建SonarQube服务。 参考文档: Prerequisites and Overview|SonarQube Docs Installing SonarQube from the Docker Image | SonarQube Docs 本文使用的镜像版本…

假期来临,Steam内容文件锁定怎么办?

忙忙碌碌又一年,春节假期终于进入倒计时了!已经能想象到Steam将迎来一波玩家的狂欢。 不过小编想起不少Windows用户反映过的一个问题:Steam更新游戏时不断收到报错,提示内容文件锁定,怎么办? 为了不妨碍大…

研发与环境的那些事儿

文章目录影响开发效率的环境问题研发需要的环境环境的演变测试单体环境到多环境的演变单体环境上线流程多环境上线流程提供高效研发环境环境是开发工作的核心步骤之一,对研发的开发测试是有影响的。研发与环境之间的关系是非常重要的,研发环境的质量直接…

完美解决了报错:app.js:249 Uncaught TypeError: Cannot redefine property: $router

场景: 项目打包优化阶段,为了解决打包成功后,单文件体积过大的问题 ,可以通过 webpack 的 externals 节点,来配置并加载外部的 CDN 资源 原因:报错的原因就是重新定义了$router,因为在项目中安装…

分享134个ASP源码,总有一款适合您

ASP源码 分享134个ASP源码,总有一款适合您 134个ASP源码下载链接:https://pan.baidu.com/s/1eZwPKoGGSnzItVBM3_Z77w?pwdxvqz 提取码:xvqz 下面是文件的名字,我放了一些图片,文章里不是所有的图主要是放不下...&am…

详细搞懂vue2.0 3.0区别-summernote富文本使用

文章目录背景介绍必备知识实操安装回退脚手架vue cli版本vue-使用summernote富文本功能(不失效版)小知识如果感觉有用点个关注,一键三连吧!蟹蟹!!!背景 一开始只是准备实现summernote富文本&…

Stitch it in Time: GAN-Based Facial Editing of Real Videos翻译

代码地址 论文下载 摘要 生成对抗网络在其潜空间内编码丰富语义的能力已被广泛用于面部图像编辑。然而,事实证明,在视频上复制他们的成功具有挑战性。高质量的面部视频集是缺乏的,在视频上存在一个需要克服的基本障碍——时间一致性。我们认…

【Leetcode面试常见题目题解】6. 电话号码的字母组合

题目描述 本文是LC第17题,电话号码的字母组合,题目描述如下: 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同)。注意…

智能遍历测试在回归测试与健壮性测试的应用

首先来看业界用的较早也是经常听过的一款工具—— Monkey。这是 Android 官方提供的一个工具。谷歌原本设计这款工具是为了对 App 进行压力测试的。谷歌早期在设计 Android 的时候,Android 需要响应滑动、输入、音量、电话等事件,早期 activity 设计不完…

常见的 5 种 消息队列 使用场景

消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。 实现高性能,高可用,可伸缩和最终一致性架构。 使用较多的消息队列有 RocketMQ,RabbitMQ,Kafka&#xf…

Android实战场景 - 输入手机号、银行卡号、身份证号时动态格式化

在日常项目开发中,如果稍微严谨点的话,其中关于手机号、银行卡号、身份证号的输入格式有做了限制格式化操作,主要是为了给用户带来更好的体验感; 最近同事正好问到了我这个问题,虽然以前做过这类型功能,但是…