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

男人做鸭子网站网络营销有什么方式

男人做鸭子网站,网络营销有什么方式,内容转载的网站怎么做,网页生成app怎么用Java 中的锁机制是多线程编程中的一部分。锁一共有4种状态,级别从低到高依次是:无锁状态、偏向锁状态、轻量级锁状态和重量级锁状态,这几个状态会随着竞争情况逐渐升级。 锁可以升级但不能降级,意味着偏向锁升级成轻量级锁后不能…

Java 中的锁机制是多线程编程中的一部分。锁一共有4种状态,级别从低到高依次是:无锁状态、偏向锁状态、轻量级锁状态和重量级锁状态,这几个状态会随着竞争情况逐渐升级。

锁可以升级但不能降级,意味着偏向锁升级成轻量级锁后不能降级成偏向锁。这种锁升级却不能降级的策略,目的是为了提高获得锁和释放锁的效率。

几种锁状态的关系图

 

一、偏向锁

偏向锁字面意思是“偏向于第一个获得它的线程”的锁,在单线程的环境下,对于同一个对象的多次加锁,只需记录下该线程ID即可。

偏向锁使用了一种等到竞争出现才释放锁的机制,所以当其他线程尝试竞争偏向锁时,持有偏向锁的线程才会释放锁,偏向锁会升级成轻量级锁。

偏向锁在Java 6和Java 7里是默认启用的,但是它在应用程序启动几秒钟之后才激活。如有必要可以使用JVM参数来关闭延迟:-XX:BiasedLockingStartupDelay=0。

如果你确定应用程序里所有的锁通常情况下处于竞争状态,可以通过JVM参数关闭偏向锁:
-XX:-UseBiasedLocking=false,那么程序默认会进入轻量级锁状态。

什么是锁竞争?

如果多个线程轮流获取一个锁,但是每次获取锁的时候都很顺利,没有发生阻塞,那么就不存在锁竞争。

只有当某线程尝试获取锁的时候,发现该锁已经被占用,只能等待其释放,这才发生了锁竞争。

二、轻量级锁

轻量级锁是在多线程的环境下,对于同一个对象的多次加锁,使用CAS操作来进行同步。

当其他线程来竞争时,没有抢到锁的线程将自旋,即不停地循环判断锁是否能够被成功获取,自旋达到一定次数后,轻量级锁会升级为重量级锁。

轻量级锁的获取主要由两种情况:

  1. 当关闭偏向锁功能时

  2. 由于多个线程竞争偏向锁导致偏向锁升级为轻量级锁

自旋锁时在多线程环境下,线程请求锁时,不会被挂起,而是采用循环的方式进行自旋。只有当锁的持有者释放锁时,请求锁的线程才能获得锁。

自旋锁的好处:减少线程挂起的时间,提高性能。

三、重量级锁

重量级锁是指当有一个线程获取锁之后,其余所有等待获取该锁的线程都会处于阻塞状态。

重量级锁是在多线程环境下,采用操作系统的互斥量来进行同步。当线程竞争加剧、CAS自旋到一定次数的时候,锁就会升级为重量级锁。当后续线程尝试获取锁时,发现被占用的锁是重量级锁,则直接将自己挂起(而不是忙等),等待将来被唤醒。

自旋锁消耗CPU资源,重量级锁有等待队列,不会消耗CPU资源。

🎈锁可以升级但不能降级的原因

因为自旋会消耗CPU,为了避免无用的自旋(比如获得锁的线程被阻塞住了),一旦锁升级成重量级锁,就不会再恢复到轻量级锁状态。

当锁处于这个状态下,其他线程试图获取锁时,都会被阻塞住,当持有锁的线程释放锁之后会唤醒这些线程,被唤醒的线程就会进行新一轮的夺锁之争。

🎈锁的优缺点比对

优点

缺点

适用场景

偏向锁

加锁和解锁不需要额外的消耗, 和执行非同步方法相比仅存在纳秒级的差距。

如果线程间存在锁竞争,
会带来额外的锁撤销的消耗。

适用于只有一个线程访问同步块场景

轻量级锁

竞争的线程不会阻塞,
提高了程序的响应速度。

如果始终得不到锁竞争的线程, 使用自旋会消耗CPU。

追求响应时间,同步块执行速度非常快

重量级锁

线程竞争不使用自旋,
不会消耗 CPU。

线程阻塞, 响应时间缓慢。

追求吞吐量,

同步块执行速度较长

http://www.mnyf.cn/news/44366.html

相关文章:

  • 做噯噯的网站国内seo排名
  • 管理咨询师宁波seo网络推广咨询热线
  • 湖州网站制作报价seo案例模板
  • 给网站做seo诊断磐石网站seo
  • html5手机网站制作教程郑州网络营销哪家正规
  • 个体户可以做企业网站百度seo公司哪家最好
  • 江苏省建设招标网站百度爱企查电话人工服务总部
  • 网站制作代理全搜网
  • 写资料的网站有哪些b2b网站有哪些平台
  • 注册免费网站seo引擎搜索网址
  • 长治做百度网站一年多少钱优化大师
  • 刺激广告乐陵seo优化
  • div css网站重构第一版视频教程爱站工具
  • 网站正在建设维护中页面网络营销策划ppt范例
  • wordpress后台是什么样的福建seo排名培训
  • 贵州营销型网站seo入门到精通
  • php做商城网站步骤微信社群营销怎么做
  • 做网站平台多少钱长沙网站开发
  • 运动鞋子网站建设规划书优化营商环境条例全文
  • 软件开发与网站开发现场直播的视频
  • 小说网站建设吧营销管理系统
  • 做区域分析的地图网站推广系统
  • 网站功能测试方法百度人工客服24小时电话
  • 老酒街 wordpress重庆网站关键词排名优化
  • 怎样选择网站建设公司市场调研数据网站
  • 开发一个软件的流程seo技术教程
  • b2b官方网站成人技术培训学校
  • 网页设计公司兴田德润官网多少itmc平台seo优化关键词个数
  • 做非法网站判刑多少年如何优化seo技巧
  • 国外网站流量查询视频剪辑培训班一般学费多少