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

Tp5即做网站又提供api接口俄罗斯乌克兰

Tp5即做网站又提供api接口,俄罗斯乌克兰,高端网站设计官网,30天网站建设实录下载我们都使用第三方库作为开发的正常部分。 通常#xff0c;我们无法控制其内部。 JDK随附的库是一个典型示例。 这些库中的许多库都使用锁来管理竞争。 JDK锁具有两种实现。 人们使用原子CAS样式指令来管理索赔过程。 CAS指令往往是最昂贵的CPU指令类型#xff0c;并且在x86上… 我们都使用第三方库作为开发的正常部分。 通常我们无法控制其内部。 JDK随附的库是一个典型示例。 这些库中的许多库都使用锁来管理竞争。 JDK锁具有两种实现。 人们使用原子CAS样式指令来管理索赔过程。 CAS指令往往是最昂贵的CPU指令类型并且在x86上具有内存排序语义。 锁通常是无竞争的这会导致可能的优化从而可以使用避免使用原子指令的技术将锁偏向无竞争的线程。 这种偏向使得理论上的锁定可以被同一线程快速重新获得。 如果该锁最终被多个线程争用则该算法将从偏见中恢复过来并使用原子指令退回到标准方法。 偏向锁定已成为Java 6的默认锁定实现 。 在遵守单一作者原则时偏向锁定应该是您的朋友。 最近当使用套接字API时我决定衡量锁定成本并对结果感到惊讶。 我发现我的无竞争线程所产生的开销比我预期的要多。 我汇总了以下测试以比较Java 6中可用的当前锁实现的成本。 考试 为了进行测试我将在锁中增加一个计数器并增加锁中竞争线程的数量。 对于Java可用的3种主要锁实现将重复此测试 Java语言监视器上的原子锁定 Java语言监视器上的偏向锁定 Java 5中随java.util.concurrent包引入的ReentrantLock 。 我还将在最新的3代Intel CPU上运行测试。 对于每个CPU我将执行测试直到核心计数将支持的最大并发线程数为止。 该测试是在64位LinuxFedora Core 15和Oracle JDK 1.6.0_29上进行的。 编码 import java.util.concurrent.BrokenBarrierException; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; import java.util.concurrent.CyclicBarrier;import static java.lang.System.out;public final class TestLocks implements Runnable {public enum LockType { JVM, JUC }public static LockType lockType;public static final long ITERATIONS 500L * 1000L *1000L;public static long counter 0L;public static final Object jvmLock new Object();public static final Lock jucLock new ReentrantLock();private static int numThreads;private static CyclicBarrier barrier;public static void main(final String[] args) throws Exception{lockType LockType.valueOf(args[0]);numThreads Integer.parseInt(args[1]);runTest(numThreads); // warm upcounter 0L;final long start System.nanoTime();runTest(numThreads);final long duration System.nanoTime() - start;out.printf(%d threads, duration %,d (ns)\n, numThreads, duration);out.printf(%,d ns/op\n, duration / ITERATIONS);out.printf(%,d ops/s\n, (ITERATIONS * 1000000000L) / duration);out.println(counter counter);}private static void runTest(final int numThreads) throws Exception{barrier new CyclicBarrier(numThreads);Thread[] threads new Thread[numThreads];for (int i 0; i threads.length; i){threads[i] new Thread(new TestLocks());}for (Thread t : threads){t.start();}for (Thread t : threads){t.join();}}public void run(){try{barrier.await();}catch (Exception e){// dont care}switch (lockType){case JVM: jvmLockInc(); break;case JUC: jucLockInc(); break;}}private void jvmLockInc(){long count ITERATIONS / numThreads;while (0 ! count--){synchronized (jvmLock){counter;}}}private void jucLockInc(){long count ITERATIONS / numThreads;while (0 ! count--){jucLock.lock();try{counter;}finally{jucLock.unlock();}}} } 编写测试脚本 设置-x 对于{1..8}中的i 做Java -XX-UseBiasedLocking TestLocks JVM $ i; 做完了 对于{1..8}中的i 做Java -XX UseBiasedLocking TestLocks JVM $ i; 做完了 对于{1..8}中的i 做Java TestLocks JUC $ i; 做完了 结果 图1 图2 图3 在现代英特尔处理器上偏置锁定不再应该是默认的锁定实现。 我建议您使用-XX-UseBiasedLocking JVM选项来评估您的应用程序和实验以确定是否可以从针对无竞争情况使用基于原子锁的算法中受益。 观察结果 在无竞争的情况下有偏锁比原子锁贵10。 似乎对于最近的CPU代来说原子指令的成本比偏向锁的必要内务处理要少。 在Nehalem之前锁定指令会在内存总线上声明一个锁定以执行这些原子操作每条操作将花费100个以上的周期。 自Nehalem以来原子指令可以在CPU内核本地进行处理并且在执行内存排序语义时不需要等待存储缓冲区为空时通常只需花费10-20个周期。 随着争用的增加语言监视器锁定将Swift达到吞吐量限制而与线程数无关。 与使用同步的语言监视器相比ReentrantLock提供了最佳的无竞争性能并且随着争用的增加扩展性也显着提高。 当2个线程竞争时ReentrantLock具有降低性能的奇怪特征。 这值得进一步调查。 当竞争线程数较少时Sandybridge遭受原子指令增加的延迟 这在上一篇文章中已详细介绍。 随着竞争线程数的不断增加内核仲裁的成本趋于占主导地位而Sandybridge则显示出其在提高内存吞吐量方面的优势。 结论 在开发自己的并发库时如果无锁替代算法不是可行的选择则建议使用ReentrantLock而不是使用synced关键字因为它在x86上具有明显更好的性能。 更新2011年11月20日 Dave Dice指出未对JVM启动的前几秒中创建的锁实施偏向锁。 我将在本周重新运行测试并发布结果。 我收到了更多质量反馈表明我的结果可能无效。 微型基准测试可能会很棘手但是在大型应用中衡量自己的应用程序的建议仍然存在。 考虑到Dave的反馈可以在此后续博客中查看测试的重新运行。 参考来自我们的JCG合作伙伴 Martin Thompson的Java锁实现来自Mechanical Sympathy Blog。 翻译自: https://www.javacodegeeks.com/2012/07/java-lock-implementations.html
http://www.zqtcl.cn/news/599485/

相关文章:

  • phpcms 图片网站免费商城网站建设
  • 网站虚拟主机租用中铁建设门户网登录初始密码
  • 网站哪个公司做的好网站建设与管理指什么软件
  • 提升学历要多少钱seo关键字优化技巧
  • 代理会计公司网站模版哪家培训机构学校好
  • 开江建设局网站怎么做让自己的网站
  • 个人建设网站要钱吗专门用来制作网页的软件是什么
  • 关键词挖掘站网seo点击软件手机
  • 建设局考试通知文件网站推广普通话的手抄报
  • 移动端网站排名海淀区seo引擎优化多少钱
  • 福田网站建设联系电话免费开商城网站吗
  • 网站备案本人承诺备案 网站建设方案书
  • 图片网站模板wordpress首页模板文件
  • 做外国网站怎么买空间网站策划方案ppt
  • 网站建设全网推广小程序外贸网站建设980
  • 具有营销价值好的网站常德农科院网站
  • 网站域名如何起男女直接做的视频上那个网站
  • 免费创建手机网站上海网站设计建设
  • 校园网站建设招标公告网站开发常用问题
  • 信息公开和网站建设工作总结开网站建设公司赚钱吗
  • 恋月wordpress主题优化大师兑换码
  • 河南省住房和城乡建设厅网站查证网页设计大赛海报
  • 莱芜金点子信息港厂房出租国内正规seo网络推广
  • 番号网 wordpressseo搜索排名影响因素主要有
  • 网站后台开发语言中山市网站建设
  • 可以免费下源码的网站石家庄市里的网站公司
  • wordpress的别名获得页面的别名优化大师电视版
  • 怎么查网站关键词排名微信上的h5页面是怎么制作的
  • 如何为一个网站做app手机软件大全
  • 哪家网络公司做网站工信部网站原来是