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

自己做衣服网站黄骅港旅游景点大全海边

自己做衣服网站,黄骅港旅游景点大全海边,网站首页收录,邮件网站排名懒惰学习最近#xff0c;我正在编写log4j附加程序#xff0c;并希望在自定义附加程序创建过程中使用logger记录一些诊断详细信息#xff0c;但是log4j初始化仅在创建附加程序实例后才完成#xff0c;因此在此阶段记录的消息将被忽略。 我感到需要在自定义附加程序中进行延… 懒惰学习 最近我正在编写log4j附加程序并希望在自定义附加程序创建过程中使用logger记录一些诊断详细信息但是log4j初始化仅在创建附加程序实例后才完成因此在此阶段记录的消息将被忽略。 我感到需要在自定义附加程序中进行延迟初始化并开始研究选项。 在此博客中我将分享我尝试过的事情。 我想到的一件事是Singleton方法但是现在已知的事实是Singleton会导致测试问题并且无法扩展它因此混合并发和对象构造的方法并不是那么好。 如果需要单例那么最好使用依赖注入框架而不是破坏应用程序代码。 让我们回到延迟初始化/评估。 一些编程语言例如scala / swift等支持惰性因此不需要自定义代码即可执行此操作但是在Java空间中我们仍然必须编写线程安全的代码才能正确执行。 让我们看一下Java中的一些选项以及获得的性能类型。 –使用同步的蛮力 这是最简单效率最低的一种scala正在使用这种方法。 Scala一个可用 ScalaLazy.java public class SingleLockV implements LazyV {private CallableV codeBlock;private V value;public SingleLock(CallableV codeBlock) {this.codeBlock codeBlock;}Overridepublic synchronized V get() {if (value null) {setValue();}return value;}private void setValue() {try {value codeBlock.call();} catch (Exception e) {throw new RuntimeException(e);}}} –双锁 编写起来并不复杂并且具有良好的性能。 public class DoubleLockV implements LazyV {private CallableV codeBlock;private V value;private volatile boolean loaded;public DoubleLock(CallableV codeBlock) {this.codeBlock codeBlock;}Overridepublic V get() {if (!loaded) {synchronized (this) {if (!loaded) {setValue();loaded true;}}}return value;}private void setValue() {try {value codeBlock.call();} catch (Exception e) {throw new RuntimeException(e);}}} –使用未来任务 这种方法易于编写并具有良好的性能。 public class LazyFutureTaskV implements LazyV {private final FutureTaskV futureTask;public LazyFutureTask(CallableV codeBlock) {this.futureTask new FutureTask(codeBlock);}Overridepublic V get() {futureTask.run();return getValue();}private V getValue() {try {return futureTask.get();} catch (Exception e) {throw new RuntimeException(e);}} } 双锁方法可提供最佳性能而蛮力则是最差的。 我使用不同数量的线程对100万次调用进行了快速基准测试。 单锁性能非常差让我们通过删除单锁来查看数字以了解“双锁和未来任务”的执行情况。 这些基准测试很快完成但是详细的基准测试数字应该接近。 可以在github上获得此博客文章的代码 翻译自: https://www.javacodegeeks.com/2016/08/lazy-evaluation.html懒惰学习
http://www.yutouwan.com/news/203573/

相关文章:

  • 赤峰网站策划做网站创新互联
  • 广州专业的免费建站在国外网站上买机票怎样做财务
  • 做漫画网站的需求自己做网站卖矿山设备
  • 网站建设开发模式品牌营销策略
  • 石家庄做网站百度推广对市场营销的认识
  • 推广 广州网站建设公司原平新闻热点头条
  • 营销网站的方法门户网站建设公司咨询
  • 网站建设需要桂ajax吗网页打开速度慢的解决方法
  • 建设企业网站一般多少钱大象影视传媒制作公司
  • 我想学制作网站吗快速搭建网站模板
  • 可以左右滑动的网站制作企业网站的问题
  • 重庆网站设计公司排行会议网站
  • 专业做网站优化排名现在标书都从哪个网站下载
  • 淘宝客怎样做网站wordpress自建图床
  • 怎么用wordpress建外贸网站在微信上做彩票网站吗
  • 电子商务类网站描述个人网站的建站过程
  • 怎样用dw做 网站首页企业信息登记号查询系统
  • 江苏省建设工程一站式申报网站企业网站设计与实现论文
  • 找人做彩票网站有哪些重庆营销网站建设
  • 网站推广优化外包公司网站建设的准备工作
  • 做短租哪个网站长沙专业网站建设服务
  • 淄博做网站电话运动网站开发的需求分析
  • 大连做外贸建站的专业公司网站支付的功能如何做
  • 南通网站建设费用网站做seo屏蔽搜索
  • 南宁营销型网站建设公司济南做网站创意
  • 网站建设与设计ppt模板下载广点通广告在哪里投放广告
  • 公司网站建设多少钱北京那个网站建设公司比较好
  • 电子政务门户网站建设方案dw做网站首页
  • 保定哪做网站好进入微信公众号首页
  • 做外贸网络推广网站什么是网站建设与优化