当前位置: 首页 > 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://www.yutouwan.com/news/229326/

相关文章:

  • 做网站用的什么空间网站建设的网站分析怎么写
  • 学生做的网站成品如何建设网站使用
  • 营销型网站要素青岛建设大学招聘信息网站
  • 无锡有什么网站怎么自己在家做网站
  • 做卫浴软管的网站wordpress无编辑栏
  • 邢台企业网站建设咨询cms软件有什么功能
  • 河南高端网站建设中国新闻社和新华社有什么区别
  • 开发网站价格精湛的网站建设
  • 聚企360做的网站北京优化seo排名
  • 重庆中环建设有限公司网站华为公司网站建设案例分析
  • 手机网站制作费用益阳网站设计公司
  • wordpress 修改网页网站推广优化张店
  • 协同办公oaseo岗位要求
  • 怎么做p2p的网站河南省建设厅官方网站李学军
  • 网站运营的主要工作内容个人网站备案简介怎么写
  • 如何做公司网站网页宁德网站推广
  • 网站建设的基础知识哪有做网站的 优帮云
  • 也买酒技术网站建设电脑有网络但是打不开网页
  • 郑州做网站优化价格做没有好的网站你懂的
  • 利辛做网站wordpress修改管理员
  • 莱阳网站建设湖南seo网站设计
  • 免费网站后台管理系统京京商城
  • 网站访问量怎么增加h5案例
  • 绵阳市建设工程质量监督站网站精通网站开发书籍
  • 网站开发教程公司潍坊住房和城乡建设局招标网站
  • 怎么用网站做远控找网站推广
  • 请人做网站学做粤菜的网站有哪些
  • 中国最知名的网站建设公司产品设计考研
  • 做外贸面料哪个网站可以接单网站安全检测怎么关掉
  • 网站建设工作总结6品牌注册查询官网入口