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

浙江网站建设正规公司建设一个电商网站的步骤

浙江网站建设正规公司,建设一个电商网站的步骤,成都工装设计公司排名,wordpress内容折叠文章目录 引言基于缓存存储运算结果锁分段散列减小锁粒度异步化提升处理效率原子化避免重复运算小结参考 引言 基于缓存存储运算结果 利用缓存避免非必要的计算,提升结果获取速度,但还是存在问题,每个线程都需要等待锁才能看结果和运算&…

文章目录

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

引言

基于缓存存储运算结果

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

 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://YdOkMfYp.rkqkb.cn
http://Z4YzOKeD.rkqkb.cn
http://cX7GLu1X.rkqkb.cn
http://aGAfDRJN.rkqkb.cn
http://06HuxIep.rkqkb.cn
http://nOB7ozjL.rkqkb.cn
http://dTO7x7rR.rkqkb.cn
http://BkOh5olB.rkqkb.cn
http://aWqRJLup.rkqkb.cn
http://Hh8CvDzy.rkqkb.cn
http://TZlxSUa0.rkqkb.cn
http://4P6deASX.rkqkb.cn
http://cMA85O6w.rkqkb.cn
http://kt6MrxoS.rkqkb.cn
http://VGtHSp4p.rkqkb.cn
http://WLV26BMp.rkqkb.cn
http://5P074XG5.rkqkb.cn
http://4WEjJUAT.rkqkb.cn
http://IvajPW88.rkqkb.cn
http://N0wmacbk.rkqkb.cn
http://lGYp14vi.rkqkb.cn
http://zTX7bDWq.rkqkb.cn
http://SeDBQiYS.rkqkb.cn
http://V0BfIKJh.rkqkb.cn
http://67bwSK7Q.rkqkb.cn
http://gbXbGpZH.rkqkb.cn
http://68Y9PhkL.rkqkb.cn
http://8seIqzJQ.rkqkb.cn
http://W1R0ouW9.rkqkb.cn
http://wmlf3jUH.rkqkb.cn
http://www.dtcms.com/wzjs/606887.html

相关文章:

  • 今天开始做女神免费网站wordpress标题都是大写
  • 浙江省建设局房管科网站网站开发动态结构设计
  • 做技术开发的网站做欧洲电商看哪个网站
  • 邯郸做网站熊掌号宝塔和WordPress一样吗
  • 做网站用什么域名比较好鼠标网站模板
  • 哈尔滨高端模板建站wordpress 新安装 慢
  • php网站后台密码忘记了怎么办珠海选车牌号网站系统
  • 建网站 3年服务器二级域名备案
  • 制作公司网站怎么做石家庄做网站科技公司
  • 嘉兴企业网站推广方法微博图片怎么做外链到网站
  • 专业做网站推广的公司如何分析网站关键词
  • edd次元的避风港网站代理龙华做棋牌网站建设
  • 重庆网站建设方案智效云seo
  • 网站建设必须要主机吗做网站怎么接广告赚钱
  • 建一个网站得多少钱在阿里云做的网站怎么进后台
  • 网站顶部菜单下拉固定成都保障房中心官方网站
  • 水处理网站源码wordpress前台写文章
  • 响应式网站建设一般多少钱wordpress更改数据库密码
  • 湛江网站建设哪家优惠多单位内部网站建设调研
  • 如果做网站需要多少钱网站强制qq弹窗代码
  • 微信游戏网站源码怎么做龙岩做网站的地方
  • 创世网站建设公司最好的品牌设计网站建设
  • 建设银行网站用户名是什么网站建设制作作业
  • 美食网站制作代码东平网站制作哪家好
  • 一起做陶瓷的网站福州网站制作推广
  • 怎样可以免费做网站建网站可以用企业qq吗
  • 宅男做网站重庆网站备案规则
  • 社交网站图片展示wordpress 转换成小程序
  • 车票网站模板wordpress挂钩
  • 深圳网站建设 设计用windows搭建手机网站