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

手机网站建设哪家优惠校园网站建设价格

手机网站建设哪家优惠,校园网站建设价格,个人网站建设的计划书,昆明百度seo排名优化我需要一个字节生成器,它将生成从Byte.MIN_VALUE到Byte.MAX_VALUE的值.当它达到MAX_VALUE时,它应该从MIN_VALUE重新开始.我使用AtomicInteger编写了代码(见下文);但是,如果同时访问并且如果使用Thread.sleep()人为地减慢了代码,那么代码似乎没有正常运行(如果没有睡眠,它运行正…我需要一个字节生成器,它将生成从Byte.MIN_VALUE到Byte.MAX_VALUE的值.当它达到MAX_VALUE时,它应该从MIN_VALUE重新开始.我使用AtomicInteger编写了代码(见下文);但是,如果同时访问并且如果使用Thread.sleep()人为地减慢了代码,那么代码似乎没有正常运行(如果没有睡眠,它运行正常;但是,我怀疑它对于出现并发问题来说太快了).代码(添加了一些调试代码)public class ByteGenerator {private static final int INITIAL_VALUE Byte.MIN_VALUE-1;private AtomicInteger counter new AtomicInteger(INITIAL_VALUE);private AtomicInteger resetCounter new AtomicInteger(0);private boolean isSlow false;private long startTime;public byte nextValue() {int next counter.incrementAndGet();//if (isSlow) slowDown(5);if (next Byte.MAX_VALUE) {synchronized(counter) {int i counter.get();//if value is still larger than max byte value,we reset itif (i Byte.MAX_VALUE) {counter.set(INITIAL_VALUE);resetCounter.incrementAndGet();if (isSlow) slowDownAndLog(10,resetting);} else {if (isSlow) slowDownAndLog(1,missed);}next counter.incrementAndGet();}}return (byte) next;}private void slowDown(long millis) {try {Thread.sleep(millis);} catch (InterruptedException e) {}}private void slowDownAndLog(long millis,String msg) {slowDown(millis);System.out.println(resetCounter (System.currentTimeMillis()-startTime) Thread.currentThread().getName() : msg);}public void setSlow(boolean isSlow) {this.isSlow isSlow;}public void setStartTime(long startTime) {this.startTime startTime;}}并且,测试public class ByteGeneratorTest {Testpublic void testGenerate() throws Exception {ByteGenerator g new ByteGenerator();for (int n 0; n 10; n) {for (int i Byte.MIN_VALUE; i Byte.MAX_VALUE; i) {assertEquals(i,g.nextValue());}}}Testpublic void testGenerateMultiThreaded() throws Exception {final ByteGenerator g new ByteGenerator();g.setSlow(true);final AtomicInteger[] counters new AtomicInteger[Byte.MAX_VALUE-Byte.MIN_VALUE1];for (int i 0; i counters.length; i) {counters[i] new AtomicInteger(0);}Thread[] threads new Thread[100];final CountDownLatch latch new CountDownLatch(threads.length);for (int i 0; i threads.length; i) {threads[i] new Thread(new Runnable() {public void run() {try {for (int i Byte.MIN_VALUE; i Byte.MAX_VALUE; i) {byte value g.nextValue();counters[value-Byte.MIN_VALUE].incrementAndGet();}} finally {latch.countDown();}}},generator-client- i);threads[i].setDaemon(true);}g.setStartTime(System.currentTimeMillis());for (int i 0; i threads.length; i) {threads[i].start();}latch.await();for (int i 0; i counters.length; i) {System.out.println(value # (iByte.MIN_VALUE) : counters[i].get());}//print out the number of hits for each valuefor (int i 0; i counters.length; i) {assertEquals(value # (iByte.MIN_VALUE),threads.length,counters[i].get());}}}在我的2核机器上的结果是值#-128得到146次点击(所有这些都应该得到100次点击,因为我们有100个线程).如果有人有任何想法,这个代码有什么问题,我都是耳朵/眼睛.更新对于那些赶时间并且不想向下滚动的人来说,在Java中解决这个问题的正确(以及最短和最优雅)方式将是这样的public byte nextValue() {return (byte) counter.incrementAndGet();}谢谢,亨氏
http://wiki.neutronadmin.com/news/229326/

相关文章:

  • 移动电商网站开发需求东莞seo外包公司哪家好
  • 济南品牌网站建设在dw里如何做网站
  • 网站制作 服务器 系统黑龙江省建筑信息平台
  • 苏州网站创建温州seo优化排名公司
  • 北京引流推广公司网站优化报价单
  • 网站的建设哈尔滨模板建站哪个品牌好
  • 一般什么企业需要建站网站服务器出问题
  • wordpress电商网站网站目录
  • 专业网站建设费用包括电子商务网站建设维护有没有欺骗
  • 网站接入协议及接入商资质seo公司是什么
  • 定制网站费用高校健康驿站建设指引
  • php 网站后台模板做任务的网站
  • 网站对公司的意义做网站有哪些需求
  • 河南网站推广优化公司wordpress上传主机
  • php网站开发技术要点怎样做免费网站
  • 帝国调用网站名称松江网站制作
  • 营销自己的网站e福州是哪个公司开发
  • 网站建设的条件手机网站特效
  • 电子类 购物网站餐饮品牌策划设计有限公司
  • saas自助建站新一站保险网
  • 信阳建设企业网站公司wordpress国内博客主题
  • 专业的开发网站建设价格网站开发与服务合同范本
  • 经开区网站建设在一起做网店的网站的怎么购买
  • 移动网站建设方案书签制作方法图片大全
  • 南昌建设厅网站群晖配置wordpress 80端口
  • 投资交易网站开发锦州做网站多少钱
  • 吉林电商网站建设价格自己做的网站怎么放视频教程
  • 公维金如何上传建设局网站360网站seo
  • 潮州专业网站建设制作创网中国的网站
  • 网站建设图片像素是多大的怎么安装wordpress主题