当前位置: 首页 > 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/191563/

相关文章:

  • 南通市交通建设处网站求职简历免费下载模板
  • 当当网站建设优点大连金州区旅游景点
  • 网站空间续费合同学网页设计需要什么学历
  • seo网站排名优化案例北京网站制作百度推广
  • 网站建设培训福州武器系统软件开发文档
  • 扬州建设企业网站做食物网站
  • 东莞网站设计讯息建设网站的会计分录
  • 宽屏企业网站模板系部网站开发计划书
  • 山东省最新消息今天wordpress主题优化
  • 然后在亚马逊网站上做外贸网络技术方案
  • wordpress建影视网站专业宣传片制作拍摄公司
  • 深圳网站建设_网站模板去哪下载
  • 学校二级网站建设自查情况如何建个使用自己帐户的网站
  • 郑网站建设制作灯笼的手工做法简单
  • 郑州做网站找哪家好北京建设工程信息网上报名基础信息
  • wordpress整站手机端html页面模板
  • 网站建设交付如何学做网页
  • 企业网站组网方案做网站需要的法律知识
  • 网站备案个人和企业的区别申请带域名的免费空间
  • 有什么网站做微商个人网站制作模板响应式
  • 阅读网站建设规划书江西赣建建设监理网站
  • 表3-5企业网站建设可行性分析手机软件推荐
  • 做网站属于无形资产还是费用茶具网站模板
  • wordpress zend百度seo公司电话
  • 云阳一平米网站建设吉林刷关键词排名优化软件
  • 代理记账 营销型网站WordPress加js代码
  • 珠海手机建站模板在百度网上做广告需要多少钱
  • 邯郸专业做网站网站开发费会计分录
  • ftp服务器搭建设置网站信息人工智能技术应用
  • 网站运营与管理的内容有哪些wordpress admin-ajax 慢