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

厦门建设管理局网站电商网站英文

厦门建设管理局网站,电商网站英文,做网站的具体步骤,网站一级域名和二级域名区别转自#xff1a; 一文秒懂 Java ThreadLocalRandom - Java 一文秒懂 - 简单教程#xff0c;简单编程随机数生成是一个非常常见的操作#xff0c;而且 Java 也提供了 java.util.Random 类用于生成随机数#xff0c;而且呢#xff0c;这个类也是线程安全的#xff0c;就是…转自 一文秒懂 Java ThreadLocalRandom - Java 一文秒懂 - 简单教程简单编程随机数生成是一个非常常见的操作而且 Java 也提供了 java.util.Random 类用于生成随机数而且呢这个类也是线程安全的就是有一点不好在多线程下它的性能不佳。为什么多线程下Random 的性能不佳因为它采用 - 简单教程简单编程 https://www.twle.cn/c/yufei/javatm/javatm-basic-threadLocalrandom.html 补充 jmh JMH: 最装逼最牛逼的基准测试工具套件 - 简书JMH简介 官网http://openjdk.java.net/projects/code-tools/jmh/ 简介JMH is a Java harness for ...https://www.jianshu.com/p/0da2988b9846 一文秒懂 Java ThreadLocalRandom 随机数生成是一个非常常见的操作而且 Java 也提供了 java.util.Random 类用于生成随机数而且呢这个类也是线程安全的就是有一点不好在多线程下它的性能不佳。 为什么多线程下Random 的性能不佳 因为它采用了多个线程共享一个 Random 实例。这样就会导致多个线程争用。 为了解决这个问题Java 7 引入了 java.util.concurrent.ThreadLocalRandom 类用于在多线程环境中生成随机数。 本文接下来的部分就来看看如何 ThreadLocalRandom 如何执行以及如何在实际应用程序中使用它。 【1】ThreadLocalRandom Via Random ThreadLocalRandom 是 ThreadLocal 类和 Random 类的组合它与当前线程隔离通过简单地避免对 Random 对象的任何并发访问在多线程环境中实现了更好的性能。 也就是说相比于 java.util.Random 类全局的提供随机数生成 使用 ThreadLocalRandom一个线程获得的随机数不受另一个线程的影响。 另一个与 Random 类不同的是ThreadLocalRandom 不支持显式设置种子。因为它重写了从 Random 继承的 setSeed(long seed) 方法会在调用时始终抛出 UnsupportedOperationException。 接下来我们看看如何使用 ThreadLocalRandom 生成随机 int、long 和 double 值。 【2】使用 ThreadLocalRandom 生成随机数 根据 Oracle 文档我们只需要调用 ThreadLocalRandom.current() 方法就能返回当前线程的 ThreadLocalRandom 实例。然后我们可以通过实例的相关方法来生成随机值。 比如下面的代码生成一个没有任何边界的随机 int 值 int unboundedRandomValue ThreadLocalRandom.current().nextInt());其实是有边界的它的边界就是 int 的边界。 接下来我们看看如何生成有边界的随机 int 值这意味着我们需要传递边界下限和边界上限作为参数 int boundedRandomValue ThreadLocalRandom.current().nextInt(0, 100);请注意这是一个左闭右开区间也就是说上面的实例生成的随机数在 [0,100) 之间包含了 0 但不包含 100。 同样的我们可以通过调用 nextLong() 和 nextDouble() 方法生成 long 和 double 类型的随机值调用方式与上面示例中 nextInt() 类似。 Java 8 还添加了 nextGaussian() 方法从生成器序列中生成下一个正态分布的值其值范围在 0.0 和 1.0 之间。 与 Random 方法类似ThreadLocalRandom 也提供了 doubles() 、ints() 和 longs() 方法生成一序列流式 ( stream ) 的随机值。 【3】使用 JMH 比较 ThreadLocalRandom 和 Random 记下来我们看看如何在多线程环境中分别使用这两个类生成随机值然后再使用 JMH 比较它们的性能。 首先我们创建一个示例其中所有线程共享一个 Random 实例。 ExecutorService executor Executors.newWorkStealingPool(); ListCallableInteger callables new ArrayList(); Random random new Random(); for (int i 0; i 1000; i) {callables.add(() - {return random.nextInt();}); } executor.invokeAll(callables); 上面的代码中我们把使用 Random 实例生成随机值的任务提交给 ExecutorService 。 然后我们使用 JMH 基准测试来检查上面代码的性能 # Run complete. Total time: 00:00:36 Benchmark Mode Cnt Score Error Units ThreadLocalRandomBenchMarker.randomValuesUsingRandom avgt 20 771.613 ± 222.220 us/op 接着类似地我们使用 ThreadLocalRandom 而不是 Random 实例 ExecutorService executor Executors.newWorkStealingPool(); ListCallableInteger callables new ArrayList(); for (int i 0; i 1000; i) {callables.add(() - {return ThreadLocalRandom.current().nextInt();}); } executor.invokeAll(callables); 上面的代码为线程池中的每个线程单独使用了一个 ThreadLocalRandom 实例。 下面是使用 JMH 对 ThreadLocalRandom 的测试结果 # Run complete. Total time: 00:00:36 Benchmark Mode Cnt Score Error Units ThreadLocalRandomBenchMarker.randomValuesUsingThreadLocalRandom avgt 20 624.911 ± 113.268 us/op 通过 JMH 的测试结果中可以看出使用 Random 生成 1000 个随机值所花费的平均时间是 772 微秒但使用 ThreadLocalRandom 只花了 625 微秒。嗯差距不是很大但好歹也是有差距的因为生成 1000 个随机数是瞬间的事情。 因此我们可以得出结论ThreadLocalRandom 在高度并发的环境中更有效。
http://www.zqtcl.cn/news/110462/

相关文章:

  • 做钓鱼网站用哪种编程语言张家界有实力seo优化费用
  • 如何做一个主题网站做网站必须有框架么
  • 建设网站需要什么知识上海高端网页设计
  • 电子商务网站建设基本流程公司网站建设平台
  • 域名没过期 网站打不开怎么办素马设计顾问讲解价格
  • 怎么做非法彩票网站贵州网站开发哪家便宜
  • 青岛市医疗保险网站wordpress七牛云
  • 哪个浏览器可以做网站查询网站的外链
  • 浅析社区网站的建设有了网站源码 怎么建设网站
  • 苏州网站排名优化系统网页设计师
  • 网站开发定制推广杭州河南省的网页制作
  • 北京随喜设计网站国内好的seo网站
  • 网站中宣传彩页怎么做的网站建设评估及分析
  • 东莞php网站建设素材网站php程序源码
  • 怎么做免费视频网站模版网站可以做seo吗
  • 备案期间怎么做网站微动漫怎么制作
  • 精美的php个人网站源码公司网站建设方案书
  • 站长如何做视频类网站如何诊断网站
  • 个人怎么做网站优化在线做印章的网站
  • 自己做的小网站市场营销互联网营销
  • 程序员会搭建非法网站吗永久免费生成app网页
  • 重庆渝北做网站哪里便宜浙江建设职业学校网站
  • 移动端网站开发介绍品牌宣传网站
  • 做文案图片上什么网站seo具体优化流程
  • 摄影做网站中国电商公司排名
  • 比较好的平面设计网站国际进出口贸易网站
  • 网站集约化建设困难seo技术网网
  • 咸宁网站建设报价成都网站设计 冠辰
  • 织梦网站首页目录在哪里自己编写的网站如何放到wordpress
  • 检测网站为什么打不开了推广网站有哪些方式