服装效果图网站临安网站开发

bicheng/2026/1/26 22:36:59/文章来源:
服装效果图网站,临安网站开发,用在线网站做的简历可以吗,做网站的启蒙思想目录 1.什么是JMM 2.JMM怎样保障数据的可见性、有序性、原子性 2.1保证原子性 2.2.保证可见性 2.3保证有序性 3.CAS 3.1乐观锁和悲观锁 3.2 CAS介绍 4.重量级锁的自旋优化 1.什么是JMM JMM即Java内存模型 #xff0c;定义了一套在多线程读写共享数据#xff08;如数组、成…目录 1.什么是JMM 2.JMM怎样保障数据的可见性、有序性、原子性 2.1保证原子性 2.2.保证可见性 2.3保证有序性 3.CAS 3.1乐观锁和悲观锁 3.2 CAS介绍 4.重量级锁的自旋优化 1.什么是JMM JMM即Java内存模型 定义了一套在多线程读写共享数据如数组、成员变量等时对数据的可见性、有序性、原子性的规则和保障。JMM和Java内存结构关系不大内存结构就是JVM的内存组成、垃圾回收以及字节码和类加载的一些技术。 2.JMM怎样保障数据的可见性、有序性、原子性 2.1保证原子性 对于多个线程共享的数据而言如果不对数据进行加锁那么多个线程在调用同一资源时很可能出现异常操作。 比如线程1和线程2分别对一个初始值为0的变量 i 执行 i 和 i-- 操作理论上执行的结果是0但实际情况却不一定。由于操作系统在处理线程时采用的是时间片轮转的方式很有可能出现线程1还未执行完 i 时间片就耗尽了接下来就轮到线程2执行 i-- 操作。线程2在时间片内完成了对 i 的修改此时 i 的值为-1。然后再次轮到线程1由于线程1拿到的 i 的初始值是0所以 i 是在 i0 的基础上执行的执行完成后 i 的值为1覆盖掉了线程2的执行结果-1所以相当于线程2对于 i 的修改是无效的。 这就需要进行加锁当一个线程对一个共享资源未使用完毕前其他线程不能使用这一资源也就是保障了对共享资源的操作在执行完之前不会有其他线程访问这一资源。         加锁操作 synchronized(要加锁的对象){需要保障原子性的代码 } 锁粗化在加锁时要尽量扩大加锁的范围比如对变量 i 执行一千次加1操作如果仅对加一的操作进行加锁那么就会执行一千次加锁和解锁的操作但如果是对整个循环进行加锁不仅可以保证原子性而且只用执行一次加锁和解锁的操作能够缩短运行时间。 2.2.保证可见性 共享资源存储在主内存中当一个线程频繁读取某一资源时JIT即时编译器会进行优化将该资源的值存入到该线程工作内存中的高速缓存中后面再读取这个资源的值时会从这个高速缓存中读取虽然提高了效率但当对这一资源的值进行修改后还是会从高速缓存中读取之前的旧值导致线程对这个资源的修改不可见。         有两种方式保证可见性 使用synchronized加锁 在加锁时会清空工作内存中对所有共享资源的缓存强制要求到主内存中重新读取共享变量的值保证了拿到的共享变量的值是最新的。并且在解锁时无论是否对共享变量的值进行了修改都会将共享变量的值刷新回主内存以确保主内存中的共享变量的值是最新的。也可以直接调用System.out.println()因为执行输出操作时会调用到synchronized。 优点是既能确保原子性又能确保可见性缺点就是synchronized属于重量级的操作性能较低。 使用volatile关键字 对共享变量加上volatile关键字能够强制要求线程在读取共享变量的值时总是从主内存中读取保证了可见性。该方式性能较高但仅适用于一个写线程其他都是读线程的情况因为如果有多个写线程由于不能保证原子性就无法确定拿到的值是否是正确的。 2.3保证有序性 JVM在执行赋值操作时会根据指令是否耗时而进行指令重排在不影响结果的条件下调整指令的执行顺序但在并发执行时更改指令的执行顺序就可能会出现错误此时可以通过加上volatile关键字禁用指令重排来保证有序性。 3.CAS 3.1乐观锁和悲观锁 在介绍CAS之前先来了解一下乐观锁和悲观锁 3.2 CAS介绍 CAS即Compare And Swap是一种乐观锁的思想不使用synchronized对共享变量加锁通过volatile关键字的配合实现了无锁并发。原理是通过一个while循环不断尝试修改共享变量的值在循环时暂时存储该共享变量的原值和本线程修改后的值并通过compareAndSwap方法来判断该线程修改共享变量结束后存储的原值是否和当前共享变量的值相同。如果不同说明在该线程修改共享变量期间其他线程对共享变量的值进行了修改那么本次修改就是无效的需要再次进入循环重新获取共享变量的值并尝试修改如果相同说明修改期间其他线程并没有对共享变量进行修改那么就会将修改的结果更新到主内存中并返回true可以通过if语句实现跳出循环。 至于要volatile关键字的配合是因为要保证可见性在每次循环时都能获取到共享变量最新的值。         由于synchronized加锁会使线程进入阻塞并进行上下文切换需要保存线程阻塞前的状态并在被唤醒时恢复这一过程是非常耗时的所以CAS无锁并发能够提升效率但CAS适用于线程竞争不激烈并且是多核CPU的情况下因为当竞争比较激烈时肯定会进行频繁的循环此时就需要花费大量的时间来不断尝试修改共享变量的值而如果是单核CPU那么当时间片耗尽时只能等待下次拿到时间片时才能继续尝试但多核CPU就能实现在其他线程运行的同时不断尝试这才能体现CAS的优势。 4.重量级锁的自旋优化

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

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

相关文章

帝国网站管理系统教程成都视频剪辑培训

一、概述 灯在生活中随处可见,传统的灯光一种是每个灯对应着不同的开关,比如:家里的吊灯、壁灯、落地灯、台灯等等,一种是一键式总开关,比如:马路上的路灯,演唱会上的舞台灯,酒店一体…

html5建站系统网站地址栏

平时的工作中经常碰到很多疑难问题的处理,在解决问题的同时,有一些工具起到了相当大的作用,在此书写下来,一是作为笔记,可以让自己后续忘记了可快速翻阅,二是分享,希望看到此文的同学们可以拿出…

网站设计的原则有哪些工信部备案查询网站

版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://phoenixtoday.blogbus.com/logs/45855234.html 最近小组里有一些关于REST API设计的讨论,有些收获,打算在这里写一下。通常来讲设计第一个版本的REST API并不难&…

怎么网站建设网站浮动咨询代码

题目1 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。 示例 1: 输入: nums [-1,0,3,5,9,12], target 9 输出: 4 解释…

苏州企业网站设计开发杭州网站建设价格

//给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 // // 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 // // 你可以…

温州网站建设案例网推接单网

文章目录 一、申请和测试代码二、实测GPT4.0和星火认知大模型的对比2.1 测试网站2.2 经典问题提问对比2.3 代码问题提问对比2.4 论文问题对比2.5 评价 一、申请和测试代码 在我之前的一篇文章中,我分享了如何申请星火认知大模型的内测,并提供了一份可以…

网站建设es158医疗器械分类目录2021

目录 一、背景二、栈与堆三、声明周期四、作用五、特点(优点)六、可能出现的异常七、设置栈内存大小八、栈的存储单位九、栈运行原理十、栈帧的内部结构10.1 说明10.2 局部变量表10.3 操作数栈10.4 动态链接10.5 方法返回地址10.6 一些附加信息 十一、代…

做盗版小说网站搜索引擎优化工作原理的先后顺序

From: http://blog.csdn.net/lxcnn/article/details/4476746 1 概述 捕获组捕获到的内容,不仅可以在正则表达式外部通过程序进行引用,也可以在正则表达式内部进行引用,这种引用方式就是反向引用。要了解反向引用,首先要了…

网上做流量对网站有什么影响网站制作一般要几天

目录 背影 遗传算法的原理及步骤 基本定义 编码方式 适应度函数 运算过程 代码 结果分析 完整代码下载: https://download.csdn.net/download/abc991835105/88691336 背影 基于遗传算法的格栅路径优化,求解运算量大,一般都无法用直接求解,本文用遗传算法进行求解,遗传算…

中建海峡建设发展有限公司网站wordpress调用友链

www.diybl.com 时间:2009-04-12 作者:匿名 编辑:sky 初识Visual Leak Detector 灵活自由是C/C语言的一大特色,而这也为C/C程序员出了一个难题。当程序越来越复杂时,内存的管理也会变得越加复杂,稍有不慎就会出现内存问 …

在线网站seo优化上海网站seo排名

核心考点:1.栈的应用 2.字符串处理 题目描述 所谓后缀表达式是指这样的一个表达式:式中不再引用括号,运算符号放在两个运算对象之后,所有计算按运算符号出现的顺序,严格地由左而右新进行(不用考虑运算符的…

打车小程序源码京东网站优化

转载自 超详细的 Redis Cluster 官方集群搭建指南 今天从 0 开始搭建 Redis Cluster 官方集群,解决搭建过程中遇到的问题,超详细。 安装ruby环境 因为官方提供的创建集群的工具是用ruby写的,需要ruby2.2.2版本支持,ruby安装需…

wordpress使用腾讯云存储广州制作网站seo

说明:该系列文章从本人知乎账号迁入,主要原因是知乎图片附件过于模糊。 知乎专栏地址: 语音生成专栏 系列文章地址: 【GPT-SOVITS-01】源码梳理 【GPT-SOVITS-02】GPT模块解析 【GPT-SOVITS-03】SOVITS 模块-生成模型解析 【G…

网站建设制作设计seo优化湖北wordpress模板优化

组合选择框QComboBox类的基本用法 组合选择框QComboBox类的基本用法前言正文1、创建组合选择框2、组合选择框添加多个选项3、组合选择框清空选项4、组合选择框添加单个选项5、组合选择框清除选项6、组合选择框获取当前选项文本7、组合选择框获取当前选项索引8、组合选择框信号:…

网站 备案 注销厦门网站关键词优化

本文主要面向UMG以及Common UI的初学者 文章目录 效果展示概要Activate和Deactivate可见性绑定UI动画设置Common Activatable Widget的默认焦点 效果展示 概要 这个例子非常简单,定义了13个Common Activatable Widget CommonUI_ActivatableWidgets相当于一个容器包…

苏州市住房和建设局网站wordpress点击图片直接相册浏览

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 // 为了装 vue 的 webpack ,我把整个服务器重置了。docker 也没有了,只好重新装 docker ... 1. 准备工作 yum …

网站到底是域名需要备案还是空间金坛做网站的

非常重要 依赖属性和附加属性,两者是有关系的,也是有些区别的,很多时候,可能会把两者混淆了。 附加属性(Attach Property) 顾名思义,就是附加上面的属性,自身是没有的,…

佛山专业的免费建站哈尔滨最新出入规定

代码随想录二刷 |二叉树 | 二叉树的层序遍历 题目描述解题思路代码实现 题目描述 102.二叉树的层序遍历 给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。 示例…

自适应网站怎么做移动配置织梦网站地图在线生成

🎥 屿小夏 : 个人主页 🔥个人专栏 : C语言详解 🌄 莫道桑榆晚,为霞尚满天! 文章目录 📑前言一、while循环1.1语法1.2 执行过程解析1.3 break1.4 continue 🌤️全篇总结 &…

陕西网站建设企业手机改ip地址软件免费

leetcode 746 使用最小花费爬楼梯 虽然是简单题但还是要说一下,感觉做题的思路还是不够清晰,好的是知道状态是最低花费,知道围绕所求的目标进行展开,倒推出递推公式 一开始写的递推公式是dp[i]dp[i-1]min(cost[i-2],cost[i-1]),写出了一个类似贪心算法的东西,归根结底还是对dp…