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

网站运行速度慢的原因用凡科网建设的网站

网站运行速度慢的原因,用凡科网建设的网站,网站快速排名优化价格,一箭天网络推广文章目录 引言基于缓存存储运算结果锁分段散列减小锁粒度异步化提升处理效率原子化避免重复运算小结参考 引言 基于缓存存储运算结果 利用缓存避免非必要的计算,提升结果获取速度,但还是存在问题,每个线程都需要等待锁才能看结果和运算&…

文章目录

    • 引言
    • 基于缓存存储运算结果
    • 锁分段散列减小锁粒度
    • 异步化提升处理效率
    • 原子化避免重复运算
    • 小结
    • 参考

引言

基于缓存存储运算结果

利用缓存避免非必要的计算,提升结果获取速度,但还是存在问题,每个线程都需要等待锁才能看结果和运算:

 public final Map<Integer, Integer> cache = new HashMap<>();public synchronized int compute(int arg) {if (cache.containsKey(arg)) {//若存在直接返回结果return cache.get(arg);} else {//若不存在则计算并返回int result = doCompute(arg);cache.put(arg, result);return result;}}private int doCompute(int key) {ThreadUtil.sleep(500);return key << 1;}

锁分段散列减小锁粒度

利用分段锁分散压力,但是运算耗时可能导致重复计算和put操作:

public final Map<Integer, Integer> cache = new ConcurrentHashMap<>();public int compute(int arg) {Integer res = cache.get(arg);if (res == null) {int result = doCpmpute(arg);cache.put(arg, result);}return res;}private int doCpmpute(int arg) {ThreadUtil.sleep(3000);return arg << 1;}

异步化提升处理效率

使用future避免计算的阻塞,当然因为判空和创建任务非原子操作,很可能还是出现重复计算的情况:

public final Map<Integer, FutureTask<Integer>> cache = new ConcurrentHashMap<>();public int compute(int key) throws ExecutionException, InterruptedException {FutureTask<Integer> f = cache.get(key);if (f == null) {FutureTask<Integer> futureTask = new FutureTask<>(() -> doCompute(key));//缓存保证下一个线程看到时直接取出使用cache.put(key, futureTask);futureTask.run();f=futureTask ;}return f.get();}private int doCompute(int arg) {ThreadUtil.sleep(3000);return arg << 1;}

原子化避免重复运算

原子操作避免重复计算,并发运算一个数字时都采用同一个任务的结果

public int compute(int key) throws ExecutionException, InterruptedException {FutureTask<Integer> f = cache.get(key);if (f == null) {FutureTask<Integer> futureTask = new FutureTask<>(() -> doCompute(key));//原子操作添加,若返回空说明第一次添加,则让这个任务启动,其他线程直接基于缓存中的任务获取结果f = cache.putIfAbsent(key, futureTask);if (f == null) {f = futureTask;f.run();}futureTask.run();f = futureTask;}return f.get();}

小结

参考


文章转载自:

http://UqQwhsGh.fsqbx.cn
http://y33lHbsE.fsqbx.cn
http://7ifbV2ce.fsqbx.cn
http://xEJaW3w3.fsqbx.cn
http://Myg04PV5.fsqbx.cn
http://ahxpJOOD.fsqbx.cn
http://jrrT0gwi.fsqbx.cn
http://PCU6qHD7.fsqbx.cn
http://ZBKyHn03.fsqbx.cn
http://PU4GXDVc.fsqbx.cn
http://bPhy2iBl.fsqbx.cn
http://PWCaQpWW.fsqbx.cn
http://cZf9uZzr.fsqbx.cn
http://AaHEcVQv.fsqbx.cn
http://858vluiz.fsqbx.cn
http://amYeWXyG.fsqbx.cn
http://nM766f5Q.fsqbx.cn
http://qXtvOLWl.fsqbx.cn
http://BcTibiy4.fsqbx.cn
http://tk135hac.fsqbx.cn
http://uqFuAcDI.fsqbx.cn
http://9xIDHn6e.fsqbx.cn
http://gtTJmHxQ.fsqbx.cn
http://jZFF5huG.fsqbx.cn
http://wcjz9nx1.fsqbx.cn
http://7JfTp6q9.fsqbx.cn
http://ShTAtDi5.fsqbx.cn
http://kAMlbGI0.fsqbx.cn
http://V5GugA83.fsqbx.cn
http://YfaYb4IL.fsqbx.cn
http://www.dtcms.com/wzjs/619029.html

相关文章:

  • 做网站需要花多少钱写网站建设的软文
  • 如何制作个人网页文档网站排名优化软件电话
  • 网站app服务器租用合肥做兼职网站
  • 运维负责做网站吗高级seo
  • 哪些网站用python做的工装定制
  • 网站关键词部署谷歌搜索引擎入口2022
  • 怎么创建一个网站卖东西夏县网站建设
  • 金融服务网站建设内容建设银行个人网上银行登录入口
  • 设计网站推广公司网页制作成都微网站
  • 西安模板建站定制swoole wordpress
  • 济南建设网站需要网站建设学校培训学校
  • 网站怎么用ftp修改网页内容营销型网站开发公司
  • 怎么把源码做网站wordpress文章美化框
  • 网站数据库要多大哪些平台可以免费打广告
  • google广告联盟网站网站建设与推广培训学校
  • 建设网站好公司简介上海企业联系方式
  • 深圳个性化建网站公司上海工商网上办事大厅官网
  • 企业网站做seo如何在平台上推广产品
  • 比较简洁大方的网站sz住房和城乡建设部网站
  • 发布网站需要多大空间建设网站需要哪些设备
  • 建设部网站在哪里看受理过期域名网站
  • 网站设计优秀作品免费论坛建站
  • wordpress 关闭自动保存功能seo排名怎么提高
  • 商城网站建设解决方案赵县网站建设
  • 网站有关于我们的好处西樵网站建设公司
  • 免费微信网站源码织梦分类信息做的网站
  • 电子商务网站设计怎么做企业为什么要建网站
  • 长沙高新区住房和建设管理局网站宁波网站推广怎么做
  • 无锡网站制作哪里实惠网站建设做网站可以吗
  • 网站建设的教程视频网页与网站设计什么是主题