驻马店做网站优化旅游网站建设策划书模板

news/2025/9/30 4:23:37/文章来源:
驻马店做网站优化,旅游网站建设策划书模板,国外 设计公司手机网站,搜索广告排名前言 锁的策略#xff1a;加锁过程中#xff0c;即处理冲突的过程中#xff0c;需要涉及到的一些不同的处理方式#xff08;此处锁策略并不是java独有的#xff09;#xff0c;本篇内容主要是讲解一下关于锁的相关知识点#xff1b; 1. 关于锁的分组 1.1 第一组#x…前言 锁的策略加锁过程中即处理冲突的过程中需要涉及到的一些不同的处理方式此处锁策略并不是java独有的本篇内容主要是讲解一下关于锁的相关知识点 1. 关于锁的分组 1.1 第一组乐观锁和悲观锁 ------这是两种不同的锁的实现方式 乐观锁在加锁之前预估当前出现锁冲突的概率不大因此在进行加锁的时候不会做太多的工作。加锁过程中做的事情比较少加锁的速度可能更快但是更容易引入一些其他的问题即可能会消耗更多的cpu资源 悲观锁在加锁之前预估当前出现锁冲突的概率比较大因此在进行加锁的时候会做更多的工作因为做的事情更多所以加锁的速度回更慢但是整个过程中不容易出现其他的问题。 1.2 第二组轻量级锁和重量级锁 轻量级锁加锁的开销更小加锁的速度更快---轻量级锁一般都是乐观锁 重量级锁加锁的开销更大加锁的速度更慢---轻量级锁一般都是悲观锁 轻量重量是加锁之后对结果的评价悲观乐观是加锁之前对未来的事情进行的预估,根据整体来说这两种角度描述的都是同一个事情 1.3 第三组自旋锁和挂起等待锁 自旋锁是轻量级锁的一种典型实现加锁的时候如果加锁失败不会就此阻塞放弃cpu而是相当于添加一个while循环不停的进行锁竞争这次锁竞争失败了就再次进入循环竞争锁直到加锁成功才退出循环。 这种反复快速的执行就称为 “自旋”故此自旋锁也是乐观锁使用自旋锁的前提是预期锁冲突概率不大只要其他线程释放了锁它就能第一时间加锁成功但如果有很多线程要加锁就必要使用自旋锁了因为会浪费cpu资源。 等待挂起锁是重量级锁的一种典型体现也是悲观锁加锁的时候如果加锁失败就会等待一段时间这段时间它不会去进行加锁操作和别的线程锁竞争故此就能把一些cpu资源让出来被让出来的这些cpu资源可以干一些其他事情等一段时间过后会再次尝试加锁如果失败还是重复以上工作直到最后成功拿到锁 当等待挂起的时候会有内核调度器介入所以就需要完成的操作就多了从而要获取锁的时间花费也更多一些。 Qjava中的synchronized算以上锁的哪种情况 Asynchronized具有自适应能力且synchronized在某些情况下是乐观锁轻量级锁自旋锁但是在某些情况下时悲观锁重量级锁等待挂起锁当然系统内部会自动的评估当前锁冲突的激烈程度         如果当前锁冲突的激烈程度不大就处于乐观锁\轻量级锁\自旋锁         如果当前锁冲突的激烈程度很大就处悲观锁锁\重量级锁\等待挂起锁 1.4 第四组 普通互斥锁和读写锁 普通互斥锁类似synchronized这种操作涉及到加锁、解锁 读写锁这里加锁的情况分为两种加读锁加写锁 读锁和读锁之间不会出现锁冲突不会阻塞写锁和写锁之间会涉出现锁冲突会阻塞读锁和写锁之间会出现锁冲突会阻塞当一个线程加读锁时另一个线程只能读不能写当一个线程加写锁时另一个线程不能写也不能读 Q:为啥要引入读写锁 A:     如果两个线程读本身就是线程安全的不需要进行互斥         如果使用synchronized这种方式加锁两个线程读与会产生互斥阻塞对于性能有一定的损耗完全给读操作不加锁就怕连个线程一个是读线程一个是写线程这样更加会涉及锁冲突如上所述读写锁能很好地解决上述的问题 java标准库中也提供了专门的类来实现读写锁读写锁本质上还是系统提供的读写锁系统提供apijvm中将api进行封装给我们使用注意synchornized不是读写锁 1.5 第五组公平锁和非公平锁 此处的公平即遵循先来后到的规则才是公平 公平锁如果线程和线程之间锁竞争的时间大小不一样按照锁竞争时间久的线程先拿到锁有先后顺序先来后到的意思 非公平锁线程和线程之间没有拿锁顺序随机调度各凭各的本事拿锁。 这里使用公平锁就能很好的解决线程饿死的这一问题。而要想实现公平锁就需要引入额外的数据结构引入队列记录每个线程的先后顺序才能实现公平锁。 1.6 第六组可重入锁和不可重入锁 可重入锁如synchronized加锁一段代码锁里面可以再进行一次加锁锁里面可以嵌套多个锁里面是用计数器这种方式对加锁的数量进行计数并判断是否解锁是可重入锁。 不可重入锁系统自带的锁不能连续加锁两次。 1.7 synchronized和Linux基于特定锁的简单比较 下面来说明一下synchronized和系统自带的锁的具体锁 synchronized乐观锁 / 悲观锁自适应 轻量级锁 / 重量级锁自适应 自旋锁 / 挂起等待所自适应 不是读写锁 非公平锁 可重入锁 linux提供的mutex系统自带的锁           悲观锁 重量级锁 挂起等待所 不是读写锁 非公平锁 不可重入锁 2. 细说synchronized的自适应 Synchronized的加锁过程自适应如下所述 当线程执行到synchronized的时候如果这个对象处于未加锁的状态就会经历一下的过程 2.1 锁升级 1、偏向锁阶段         核心思想“懒汉模式”就是能不加锁就不加锁所谓的偏向锁并不是真的加锁了只是做了个非常轻量的标记。         一旦有线程来竞争这个锁持有偏向锁的线程能第一时间拿到这个锁如果没有其他线程竞争锁下次还是拿到锁的线程大概率还是持有偏向锁的线程。         总的来说当有锁竞争的情况下偏向锁没有提高效率在没有锁竞争的情况下偏向锁就能大幅度的提高效率了。         这个标记是锁里面的一个属性每个锁都有自己的标记当锁对象首次加锁是没有涉及到锁竞争这个阶段就是偏向锁阶段一旦涉及到锁竞争就会升级成轻量级锁阶段。         2、轻量级锁阶段         此处的轻量级锁就是通过自旋的方式实现的。假设有锁竞争但不多的时候就会处于轻量级锁阶段它的优势当其他线程释放锁了处于轻量级锁阶段的线程能第一时间拿到锁劣势比较消耗cpu资源因为是自旋的方式实现的会有个循环一直尝试拿锁。         当线程多了轻量级锁就不合适了每个线程都循环尝试拿锁但如果已经有线程拿到锁了其他线程要阻塞等待但等待的这过程是会有循环不断的尝试拿锁这里消耗的cpu资源就很多了。这时就会从轻量级锁阶段升级成重量级锁阶段。         3、重量级锁阶段        此处的重量级锁是用挂起等待的方式实现的当有很多线程同时去竞争这个锁时有个线程拿到锁了其他线程没拿到就会阻塞等待等待一段时间再去尝试拿锁不成功再阻塞等待一段时间循环以上步骤如此就会让出cpu的资源可以利用这些cpu资源干一些其他的事。         注意当前版本此处只能升级不能降级。 2.2 锁消除  锁消除是synchronized的内部优化 有时候有些代码可以一眼看上去就不用加锁但是代码加锁了这时候编译器就会把这个锁给消除掉毕竟加锁操作也是要消耗一些硬件资源的。 注意锁消除和偏向锁的区别 锁消除针对能够一眼就看出不涉及到线程安全问题的代码编译器能够把锁给消除掉。 偏向锁是已经运行代码了才知道没有锁竞争。 2.3 锁粗化 通常情况下我们更偏好于让锁更细一些这样更有利于并发编程的时候解决线程安全问题但有时候让锁更粗写能提高效率会希望锁粗点。 锁粗化把多个细粒度的锁合并成一个粗粒度的锁。如下图所示 一段代码中频繁的加锁解锁肯定会消耗更多的硬件资源但是如果能把一段代码的多个加锁、解锁操作优化成只有一次加锁、解锁这样也能提高效率。 ps关于多线程中锁策略的内容就到这里了如果对你有所帮助的话就请一键三连哦

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

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

相关文章

SEO如何建设网站天津魔方网站建设

1. 题目 给定一个字符串 S 和一个字符 C。返回一个代表字符串 S 中每个字符到字符串 S 中的字符 C 的最短距离的数组。 示例 1:输入: S "loveleetcode", C e 输出: [3, 2, 1, 0, 1, 0, 0, 1, 2, 2, 1, 0]来源:力扣(LeetCode) 链…

北京市保障房建设投资中心网站首页济南长清网站建设

题意 题目就是说让我们在l到r的数字中求得有多少个连续k为不相同的数 1≤L≤R≤1e18 2≤K≤5 Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)分析 直接枚举必然超时 考虑数位dp 由于k最大到5 所以我们可以记录前四位的大小 通过一个c…

青岛做网站公司电话一起做业官方网站

目录: OpenID 与 OAuth2 基础知识Blazor wasm Google 登录Blazor wasm Gitee 码云登录Blazor SSR/WASM IDS/OIDC 单点登录授权实例1-建立和配置IDS身份验证服务Blazor SSR/WASM IDS/OIDC 单点登录授权实例2-登录信息组件wasmBlazor SSR/WASM IDS/OIDC 单点登录授权实例3-服务端…

杭州制造业企业做网站自带代理的浏览器

后端从数据库获取数据给到前端: 第一种方式: admin.py文件代码: admin.route(/showList) def show():# 获取数据库所有文章数据,得到一个个对象resArticle.query.all()dicts[]# 将每一个对象转成字典并加入一个列表,再…

php网站开发图文教程抖音分销系统开发

java-ssm-jsp-大学社团管理系统 获取源码——》公主号:计算机专业毕设大全

手机版网站系统厨房装修图片

MATLAB实现蝙蝠算法(BA) 1.算法介绍 蝙蝠算法(简称BA)是一种受微型蝙蝠回声定位机制启发的群体智能算法,由Xin-She Yang于2010年提出。这种算法模拟了微型蝙蝠通过向周围环境发出声音并监听回声来识别猎物、避开障碍物以及追踪巢穴的行为。…

网站续费一年多少钱无法连接到wordpress

嘿,各位搞生产管理的朋友,肯定都碰到过些麻烦事儿吧。我就寻思着,能不能弄出个 “明明白白” 的工作场地呢?让员工和管理人员都能随时查查生产进度,一发现生产里有啥问题就能立马知道。 生产进度不好追踪生产过程不清…

重庆南坪网站建设公司wordpress加载图片的速度

前段时间,工信部向中国移动、中国联通、中国电信、中国广电发放5G商用牌照,这也意味着,我国5G网络正式开始被商用。并且目前三大运营商都已完成了5G网络下的终端组网测试,计划于今年第三季度开始进行试商用。而就在近期&#xff0…

北京h5网站开发公司网站建设图片流程图

调用Android原生日期选择器对话框就是DatePickerDialog,具体内容如下在Android4.4系统上效果如图:在Android5.0以上效果如图:1、Activity的onCreate方法中获取当时的年,月,日Calendar ca Calendar.getInstance();mYea…

网站制作怎样做背景如何做繁体字网站

戳蓝字“CSDN云计算”关注我们哦!设想一下,当市场闪现新的业务机遇时,企业能够做到不担心繁杂的技术问题而做出快速响应;当企业无论何时都可以不用考虑工作负载怎样,创新想法立马可以快速转化为原型甚至产品&#xff0…

如果搭建网站长沙市门户网站建设

HarmonyOS通过数字证书(.cer文件)和Profile文件(.p7b文件)等签名信息来保证应用的完整性,应用如需上架到华为应用市场必须通过签名校验。因此,开发者需要使用发布证书和Profile文件对应用进行签名后才能发布…

网站规划与建设ppt模板一级a做爰片免费网站中国片

废品回收抢单派单小程序开源版开发 用户注册和登录:用户可以通过手机号码注册和登录小程序,以便使用废品回收抢单派单功能。废品回收订单发布:用户可以发布废品回收订单,包括废品种类、数量、回收地点等信息。废品回收抢单&#…

5设计网站网页页面制作流程

设计模式也是面试中的热门考题,基本这个部分都是问问你知不知道XXX设计模式,有什么用,优缺点,然后再现场手写一个demo。很多时候是和spring一起考的,问问你知不知道spring框架用了哪些设计模式。今天我们来先看看单例模…

广州站到广州南站地铁要多久毕业设计网站建设题目

JDK中用Thread.State类定义了线程的五种状态 要想实现多线程,必须在主线程中创建新的线程对象。Java语言使用Thread类及其子类的对象来表示线程,在它的一个完整的生命周期中通常要经历如下的五种状态: ①新建: 当一个Thread类或…

无锡定制网站建设国家信用信息公示网查询官网

分享7款好玩的前端动画特效 其中有CSS动画、SVG动画、js小游戏等等 下方效果图可能不是特别的生动 那么你可以点击在线预览进行查看相应的动画特效 同时也是可以下载该资源的 CSS3模仿四季交替动画 基于HTML5CSS3实现的卡通风格一年四季交替动画特效 以下效果图只能体现框架的…

公司建网站流程个人门户网站模板

对3D Implicit Transporter for Temporally Consistent Keypoint Discovery的简单理解 文章目录 1. 现有方法限制和文章改进2. 方法2.1 寻找时间上一致的3D特征点2.1.1 3D特征Transporter2.1.2 几何隐式解码器2.1.3 损失函数 2.2 使用一致特征点的操纵 1. 现有方法限制和文章改…

南通优化网站收费标准互联网黄页是什么

《论文阅读》通过顺序不敏感的表示正则化实现稳健的个性化对话生成 ACL 2023 前言 相关个性化生成论文推荐简介问题定义方法损失函数实验结果 前言 亲身阅读感受分享,细节画图解释,再也不用担心看不懂论文啦~ 无抄袭,无复制,纯手…

wordpress适合电影网站的模板怎么用一级域名搭建网站

AI算法工程师-非leetcode题目总结 除了Leetcode你还需要这些实现nms旋转矩形IOU手动实现BN手动实现CONV实现CrossEntropyLoss 除了Leetcode你还需要这些 希望大家留言,我可以进行补充。持续更新~~~ 实现nms import numpy as np def nms(dets, threshold):x1 dets…

外吐司做的阿里巴巴的网站网站m3u8链接视频怎么做的

在云仓酒庄豪迈白酒的生产过程中,传统酿造工艺与现代科技的结合是推动产业发展的重要动力。云仓酒庄作为一家注重创新与实践的酒庄,在这方面进行了许多有益的探索和尝试。 首先,传统酿造工艺是云仓酒庄豪迈白酒的灵魂。在长期的生产实践中&am…

网站建设 销售人员平面设计网站推荐

5.1 概述 只有一个抽象方法的接口我们称之为函数接口。 JDK的函数式接口都加上了 FunctionalInterface 注解进行标识。但是无论是否加上该注解只要接口中只有一个抽象方法,都是函数式接口。 在Java中,抽象方法是一种没有方法体(实现代码&a…