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

柳州建站公司forpress wordpress wp另类

柳州建站公司,forpress wordpress wp另类,前端培训机构推荐,沈阳人流医院sql并发 锁 优化思路在高负载多线程应用程序中#xff0c;性能非常重要。 开发人员必须意识到并发问题才能获得更好的性能。 当我们需要并发时#xff0c;我们通常拥有必须由两个或更多线程共享的资源。 在这种情况下#xff0c;我们处于竞争状态 #xff0c;其中只有一个线… sql并发 锁 优化思路 在高负载多线程应用程序中性能非常重要。 开发人员必须意识到并发问题才能获得更好的性能。 当我们需要并发时我们通常拥有必须由两个或更多线程共享的资源。 在这种情况下我们处于竞争状态 其中只有一个线程在资源上将获取锁而所有其他需要该锁的线程将被阻塞。 此同步功能不是免费提供的。 JVM和OS都会消耗资源以便为您提供有效的并发模型。 使并发实现资源密集的三个最基本的因素是 上下文切换 内存同步 封锁 为了编写优化的代码进行同步您必须了解这三个因素以及如何减少它们。 编写此类代码时您必须注意许多事项。 在本文中我将向您展示一种通过减小锁的粒度来减少这些因素的技术。 从基本规则开始 不要将锁持有超过必要的时间。 获取锁之前 请做任何您需要做的事情 仅将锁用于对同步资源进行操作并立即释放它。 看一个简单的例子 public class HelloSync {private Map dictionary new HashMap();public synchronized void borringDeveloper(String key, String value) {long startTime (new java.util.Date()).getTime();value value _startTime;dictionary.put(key, value);System.out.println(I did this in ((new java.util.Date()).getTime() - startTime) miliseconds);} } 在此示例中我们违反了基本规则因为我们创建了两个Date对象调用System.out.println并执行许多String连接。 唯一需要同步的动作是动作“ dictionary.putkeyvalue; ”更改代码并将同步从方法范围移到这一行。 更好的代码是这样的 public class HelloSync {private Map dictionary new HashMap();public void borringDeveloper(String key, String value) {long startTime (new java.util.Date()).getTime();value value _startTime;synchronized (dictionary) {dictionary.put(key, value);}System.out.println(I did this in ((new java.util.Date()).getTime() - startTime) miliseconds);} } 上面的代码可以写得更好但是我只想给你个想法。 如果想知道如何做请检查java.util.concurrent.ConcurrentHashMap 。 那么如何减少锁的粒度呢 简而言之通过尽可能少地请求锁。 基本思想是使用单独的锁来保护一个类的多个独立状态变量而不是在类范围内仅具有一个锁。 看看我在许多应用程序中看到的这个简单示例。 public class Grocery {private final ArrayList fruits new ArrayList();private final ArrayList vegetables new ArrayList();public synchronized void addFruit(int index, String fruit) {fruits.add(index, fruit);}public synchronized void removeFruit(int index) {fruits.remove(index);}public synchronized void addVegetable(int index, String vegetable) {vegetables.add(index, vegetable);}public synchronized void removeVegetable(int index) {vegetables.remove(index);} } 杂货店老板可以在他的杂货店添加水果和蔬菜/从中删除水果和蔬菜。 杂货店的这种实现使用基本的杂货店锁来保护水果和蔬菜因为同步是在方法范围内完成的。 除了这个胖锁我们可以使用两个单独的守护程序每种资源水果和蔬菜使用一个。 检查下面的改进代码。 public class Grocery {private final ArrayList fruits new ArrayList();private final ArrayList vegetables new ArrayList();public void addFruit(int index, String fruit) {synchronized(fruits) fruits.add(index, fruit);}public void removeFruit(int index) {synchronized(fruits) {fruits.remove(index);}}public void addVegetable(int index, String vegetable) {synchronized(vegetables) vegetables.add(index, vegetable);}public void removeVegetable(int index) {synchronized(vegetables) vegetables.remove(index);} } 使用两个防护装置拆分锁后我们看到的锁定流量将少于原始的胖锁。 当我们将其应用于具有中等锁争用的锁时此技术会更好地工作。 如果我们将其应用于具有轻微争用的锁则收益很小但仍为正值。 如果我们将其应用于争用较大的锁则结果并不总是更好您必须意识到这一点。 请出于良心使用此技术。 如果您怀疑这是一个严重的争用锁请按照以下步骤操作 确认您的生产需求量将其乘以3或5即使您愿意准备甚至乘以10。 根据新流量在测试平台上运行适当的测试。 比较两个解决方案然后选择最合适的解决方案。 有更多技术可以提高同步性能但是对于所有技术基本规则是 保持锁的时间不要超过必要的时间 。 正如我已经向您解释的那样此基本规则可以翻译为“尽可能少地寻求锁”也可以翻译为其他翻译解决方案我将在以后的文章中尝试描述它们。 另外两个重要建议 请注意java.util.concurrent包和子包 中的类因为它们有非常聪明和有用的实现。 通过使用良好的设计模式大多数时候并发代码可以最小化。 始终牢记企业集成模式 它们可以节省您的时间。 参考 减少锁粒度– Java集成和源代码的优点来自我们JCG合作伙伴 Adrianos Dadis的并发优化 。 相关文章 Java并发教程–信号量 Java并发教程–重入锁 Java并发教程–线程池 Java并发教程–可调用将来 Java并发教程–阻塞队列 Java并发教程– CountDownLatch Java Fork / Join进行并行编程 Java内存模型-快速概述和注意事项 Java教程和Android教程列表 翻译自: https://www.javacodegeeks.com/2011/10/concurrency-optimization-reduce-lock.htmlsql并发 锁 优化思路
http://www.zqtcl.cn/news/362327/

相关文章:

  • 比较多人用什么网站做推广wordpress数据库表管理系统
  • 网页开发和游戏开发东莞优化怎么做seo
  • 北京网站搭建开发高级网页设计教程
  • 北京南站是中高风险地区吗网站建设上机实验心得
  • 大学生做兼职的网站有哪些免费行情软件网站有哪些
  • 静安手机网站建设常见的网络营销方法及其效果
  • 怎么改版网站湖南长沙地图
  • 中卫网站推广公司如何自创app软件
  • 无棣网站建设电子商务网站设计原理书籍
  • 做t-shirt素材网站企业网站建设结论
  • 唐山公司做网站查询建筑资质的网站
  • 邯郸的网站建设网站正能量入口
  • 网站导航栏最多可以做几个宝安网站设计排名
  • 自己怎样用手机建网站网件app
  • 周口网站开发西安市建设厅网站
  • 怎么授权小说做游戏网站论坛网站开发语言
  • 烟台商城网站建设怎么样引流顾客到店方法
  • 北京做网站公司的排名python基础教程pdf
  • 网站建设为什么学flash建设工程询价网站有哪些
  • 网站内容建设机制企业管理模式有哪些
  • 中山网站建设文化价格建网站域名注册
  • 手机电影网站怎么做大连最新发布
  • 珠三角网站建设网页制作专业知识
  • 罗湖微信网站制作深圳做网站哪个公司最好
  • ps如何做ppt模板下载网站网站模板分类
  • 网站建设在线网站服务器和直播服务器一样吗
  • iapp网站做软件教程朋友圈广告投放平台
  • 优门设 网站网站代理 正规备案
  • 衡水做wap网站上海做网站吧
  • seo推广思路seo线下培训班