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

做网站广告有哪些职位/seo搜索引擎的优化

做网站广告有哪些职位,seo搜索引擎的优化,长春网站开发公司,待办事项 wordpressJava技术栈www.javastack.cn优秀的Java技术公众号作为一款公用平台,JDK 本身也为并发程序的性能绞尽脑汁,在 JDK 内部也想尽一切办法提供并发时的系统吞吐量。这里,我将向大家简单介绍几种 JDK 内部的 "锁" 优化策略。1、 锁偏向锁…

f97aec1c2f692b07a218f6a3d18c113d.png

Java技术栈

www.javastack.cn

优秀的Java技术公众号

8RXY-zg6sZAoI0gY_4b4ig

作为一款公用平台,JDK 本身也为并发程序的性能绞尽脑汁,在 JDK 内部也想尽一切办法提供并发时的系统吞吐量。这里,我将向大家简单介绍几种 JDK 内部的 "锁" 优化策略。

1、 锁偏向

锁偏向是一种针对加锁操作的优化手段。

如果一个线程获得了锁,那么锁就进入偏向模式。当这个线程再次请求锁时,无须再做任何同步操作。这样就节省了大量有关锁申请的操作,从而提高了程序性能。

因此,对于几乎没有锁竞争的场合,偏向锁有比较红啊的优化效果,因为连续多次极有可能是同一个线程请求相同的锁。而对于锁竞争比较激烈的场合,其效果不佳。因为在竞争激烈的场合,最有可能的情况是每次都是不同的线程来请求相同的锁。点击这里了解几种常见的锁。

2、 轻量级锁

如果偏向锁失败,即上一个请求的锁的线程和这个线程不是同一个。偏向锁失败意味者不能避免做同步操作。此时,虚拟机并不会立即挂起线程。他会使用一种成为轻量级锁的优化手段。

轻量级锁的操作也很方便,它只是简单地将对象头部作为指针,指向蚩尤锁的线程堆栈的内部,来判断一个线程是否持有对象锁。 如果线程获得轻量级锁成功,则可以顺利进入临界区。如果轻量级锁失败,则表示其他线程抢先争夺了锁,那么当前线程的锁请求就会膨胀为重量级锁。点击这里了解几种常见的锁。

3、 自选锁

锁膨胀后,虚拟机为了避免线程真实地在操作系统层面挂起,虚拟机还会在做最后的努力–自选锁。由于当前线程暂时无法获得锁,但是什么时候可以获得锁是一个未知数。也许在CPU几个时钟周期后,就可以得到锁。如果这样,简单粗暴的挂起线程可能是一种得不偿失的操作,因此系统会进行一次赌注:它会假设在不久的将来,线程可以得到这把锁。

因此虚拟机让当前线程做个空循环,在经过若干次循环后,如果可以得到锁,那么就顺利进入临界区。如果还不能得到锁,才会真实地将线程在操作系统层面挂起。

4、 锁消除

锁消除是一种更彻底的锁优化。Java虚拟机在JIT编译时,通过对运行上下文的扫描,去除不可能存在共享资源竞争的锁。通过锁消除,可以节省毫无意义的请求锁时间。

下面这种这种情况,我们使用vector, 而vector内部使用了synchronize请求锁。

public String []  createStrings(){    Vector  v= new Vector();    for(int i=0;i<100;i++){        v.add(Integer.toString(i));    }    return v.toArray(new String[]{});}

由于V只在函数 createStrnigs 中使用,因此它只是一个单纯的局部变量。局部变量是在线程栈上分配的,属于线程私有额数据,因此不可能被其他线程访问。所以,在这种情况下,Vector内部所有加锁同步都是没有必要的。如果虚拟机检测到这种情况,就会将这些无用的锁操作去除。点击这里了解几种常见的锁。

锁消除涉及的一项关键技术为逃逸分析。所谓逃逸分析就是观察某一个变量是否会逃出某一个作用域。在本例中,变量v显然没有逃出createString 函数之外。以此为基础,虚拟机才可以大胆的将v内部的加锁操作去除。如果createStrings 返回的不是String数组,而是v本身,那么就认为变量v逃逸出了当前函数,也就是说v有可能被其他线程访问。如是这样,虚拟机就不能消除v中的锁操作。

逃逸分析必须在 -server 模式下进行,可以使用 -XX:DoEscapeAnalysis 参数打开逃逸分析,使用 -XX:+EliminateLocks 参数可以打开锁消除。

本文摘自《Java高并发程序设计》一书。

http://www.lbrq.cn/news/939385.html

相关文章:

  • 上住房和城乡建设部网站/5188关键词平台
  • 深圳网站建设号/模板免费下载网站
  • 哪一个网站做专栏作家好点/网站推广的渠道有哪些
  • 武汉网站建设武汉网络公司/国家免费职业技能培训官网
  • 做网站流量/汕头百度关键词推广
  • 建站资源共享/图片优化
  • iis6.0如何做网站301/网络广告营销案例分析
  • 可以做mv的视频网站/微信营销平台
  • wordpress企业网站seo/今日军事新闻
  • 成都网站设计合理柚v米科技/百度小程序关键词优化
  • 旅游电子商务网站建设的流程/新闻摘抄四年级下册
  • 江西省城乡住房建设厅网站/怎么做百度推广的代理
  • 夜狼seo/seo优化在线诊断
  • 网站标题就一个关键词/seo导航
  • 做水印的网站/网站搭建软件
  • 手机网站工具/有没有永久免费crm
  • 时时彩做号工具网站/域名收录提交入口
  • 福田公司企业文化/湖南seo优化服务
  • 盗号网站怎么做/无锡seo网站管理
  • 自己做的网站访问不了/如何制定会员营销方案
  • 网吧设计公司/杭州百度首页优化
  • 传奇私服网站怎么建设/宁波网站建设团队
  • 做网站编程用什么语言好/网站发布与推广怎么写
  • 建立网站的风险/google网址直接打开
  • 重庆网站制作外包公司/网店推广网站
  • 中小企业网站建设服务公司/关键词优化软件哪家好
  • 网站建设标书范本/百度推广怎么操作
  • 黄岛网站建设公司首选/关键词优化怎么优化
  • 兴安盟建设局网站/新闻20字摘抄大全
  • 羊毛网站建设视频/今日山东新闻头条
  • 1439-素数环2
  • macOS配置 GO语言环境
  • Java程序员学从0学AI(六)
  • javaSE 6
  • 在C#中判断两个列表数据是否相同
  • 深度解析 noisereduce:开源音频降噪库实践