当前位置: 首页 > wzjs >正文

济南网站建设培训学校wordpress自助广告

济南网站建设培训学校,wordpress自助广告,o2o网站建设市场,如何做全景素材网站常见的锁策略 synchronized (标准库的锁不够你用了)锁策略和 Java 不强相关,其他语言涉及到锁,也有这样的锁策略。 1. 悲观锁,乐观锁(描述的加锁时遇到的场景) 悲观锁:预测接下来…

常见的锁策略 synchronized 

(标准库的锁不够你用了)锁策略和 Java 不强相关,其他语言涉及到锁,也有这样的锁策略。


1. 悲观锁,乐观锁(描述的加锁时遇到的场景)

悲观锁:预测接下来的锁竞争很激烈,需要针对进行额外操作(秋招)

乐观锁:预测接下来竞争不激烈,不需要做额外操作(大三实习)


2. 重量级锁 ,轻量级锁(遇到的场景之后的解决方案)

悲观锁👇

2.1 重量级锁典型代表 :挂起等待锁 (操作系统级别的) 获取锁失败时线程会被挂起(不占用CPU)

(2025 不给我吗?好吧 我等着吧,不占用cup,去干别的了.........2077噢噢!锁可以给我啦?好的好的,等着很久,但是不占cpu)

乐观锁👇

2.2 轻量级锁:典型代表:自旋锁(应用程序级别的)在获取锁失败时不挂起线程,而是通过自旋等待锁的释放。(占用CPU)

(12.00频繁访问,12.01看看锁能给我不,12.02很频繁,12.03还不给吗?12.04现在可以吗?12.05可以了给你给你,这过程和定时器中的 忙等 是一样的,占资源等,但是它很快就会获取上锁,所以资源消耗也还好?)


总结:两种锁用在不同场景,悲观锁用于并发更新频繁冲突概率较高的情况,以确保数据的一致性;而乐观锁适用于读操作频繁、写操作较少,并发冲突概率较低的情况,以提高系统的并发性能。   

悲观锁由于需要在竞争时等待锁的释放,所以效率较低,同时也可能消耗更多的系统资源

乐观锁通过自旋等待锁的释放,通常能够更快地获取锁,从而提高系统的性能,并且在资源消耗上相对较少


3. 普通互斥锁与读写锁

多线程读操作本身线程安全但是普通锁把读操作加到锁中,造成了没必要的阻塞

读写锁就是把读操作写操作区分对待.

Java 标准库提供了 ReentrantReadWriteLock 类,实现 了读写锁.

 ReentrantReadWriteLock.ReadLock 类表示⼀个读锁.这个对象提供了lock/unlock 方法 进行加锁解锁。

 ReentrantReadWriteLock.WriteLock 类表示⼀个写锁.这个对象也提供了lock/unlock 方法 进行加锁解锁。

读写锁对 读多写少 的情况进行了优化(教务系统)


4.可重入锁和不可重入锁

synchroniezd就是一个可重入锁,就是 锁嵌套锁 会被识别出来,这个情况不会出现线程安全。

想要自己实现一个可重入锁,要点是:

1.锁要记录当前哪个线程拿到的这把锁,后序加锁都进行判断

2.使用计数器,记录当前锁加锁了几次,在合适的位置 “ } ” 进行解锁。


5. 公平锁和非公平锁

公平策略:1.先来后到√

                  2.概率均等(锁 默认就是概率均等的)

这里的公平锁是先来后到策略!


synchronized非公平锁可重入锁不可读写锁,自适应(悲观乐观都行)


自适应==》锁升级(jvm对锁的策略是只能 锁升级 不能 锁降级)

无锁-》偏向锁-》自旋锁-》重量级锁

6.偏向锁

本质上还是一种懒汉模式思想的体现,吊着舔狗,舔狗要跑了,被别人钓跑了,就官宣一下,


7.锁消除(编译器优化)

你如果不需要锁,比如单线程,你还用了,编译器就会优化掉把你的synchronized去掉,这个比较靠谱的情况才会优化掉。


8.锁粗化(编译器优化)

锁的粒度

锁中间代码越多,粒度越粗

反之代码越少,粒度越细

细粒度 的代码一直加加加锁,反复加,编译器就给你 优化 成从头到尾给你加个粗粒度的锁,省得一直反复加锁,产生阻塞

(例如,你一会一个电话,来汇报工作,一会一个一会一个,给领导占住了,烦人,低效率,所以一次汇报(加锁)比较好)----------锁粗化

                                                                 还有一件事!


http://www.dtcms.com/wzjs/798755.html

相关文章:

  • 网站搭建报价表使用php如何做购物网站
  • 微信公众号授权给网站网络规划设计师视频教程下载
  • flash做网站导航成都网站建设哪家
  • 网站搜索怎么做的电子商务网站建设步骤
  • seo短视频网页入口引流在线观看网站全球十大建筑设计事务所
  • 佛山营销型网站建设网站经营方案
  • 网站开发管理课程设计说明如何网上做个人广告
  • 别人做的网站怎么安全放在我的公司企业如何建公司网站
  • 网站免费正能量软件下载视频贵阳网站制作软件
  • 多网站怎么做seo用html框架做网站
  • 水利建设经济定额站网站西宁市营销网站建设公司
  • 高校信息公开网站建设网站重构
  • 深圳网站开发哪家好WordPress图片一行多张
  • 网站内链接怎么做国际摄影网
  • 网站建设的域名注册交互式网站制作
  • 网站客户续费计算机软件工程师证怎么考
  • 韩国优秀网站设计欣赏零基础网站建设教程
  • 网站数据分析报告连云港网站建设培训
  • 自贡哪家做网站的好从哪些方面建设网站
  • 做网站公司不给源代码天津先进网站建设指导
  • 广州 营销型网站建设公司网站本科报考官网
  • 求个网站2021建设人力资源网
  • 网站诊断结论开发者选项长期开启会怎样
  • 天津建设工程信息网站最近三天发生的重要新闻
  • 大公司的网站是怎么建的微信小程序推广
  • php企业网站开发方案有什么做公众号封面图的网站
  • 环保企业网站建设现状seo关键词优化策略
  • html网站怎么做几个网页删除网站备案与注销
  • ppt做视频模板下载网站有哪些内容平面设计在哪里接单
  • 摄影网站图片如何卸载和安装wordpress