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

鄂州市网站建设_网站建设公司_需求分析_seo优化

坪山区住房和建设局网站,光纤网络是哪个公司的,德阳seo,大型网站建设推荐并发库中的BlockingQueue是一个比较好玩的类#xff0c;顾名思义#xff0c;就是阻塞队列。该类主要提供了两个方法put()和take()#xff0c;前者将一个对象放到队列中#xff0c;如果队列已经满了#xff0c;就等待直到有空闲节点#xff1b;后者从head取一个对象#… 并发库中的BlockingQueue是一个比较好玩的类顾名思义就是阻塞队列。该类主要提供了两个方法put()和take()前者将一个对象放到队列中如果队列已经满了就等待直到有空闲节点后者从head取一个对象如果没有对象就等待直到有可取的对象。 下面的例子比较简单一个读线程用于将要处理的文件对象添加到阻塞队列中 另外四个写线程用于取出文件对象为了模拟写操作耗时长的特点特让线程睡眠一段随机长度的时间。另外该Demo也使用到了线程池和原子整型 AtomicIntegerAtomicInteger可以在并发情况下达到原子化更新避免使用了synchronized而且性能非常高。由 于阻塞队列的put和take操作会阻塞为了使线程退出特在队列中添加了一个“标识”算法中也叫“哨兵”当发现这个哨兵后写线程就退出。 当然线程池也要显式退出了。 package concurrent;import java.io.File;import java.io.FileFilter;import java.util.concurrent.BlockingQueue;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.LinkedBlockingQueue;import java.util.concurrent.atomic.AtomicInteger;public class TestBlockingQueue {  static long randomTime() {    return (long) (Math.random() * 1000);  }  public static void main(String[] args) {    // 能容纳100个文件    final BlockingQueueFile queue  new LinkedBlockingQueueFile(100);    // 线程池    final ExecutorService exec Executors.newFixedThreadPool(5);    final File root  new File(F:\\JavaLib);    // 完成标志    final File exitFile  new File();    // 读个数    final AtomicInteger rc  new AtomicInteger();    // 写个数    final AtomicInteger wc  new AtomicInteger();    // 读线程    Runnable read  new Runnable() {      public void run() {        scanFile(root);        scanFile(exitFile);      }      public void scanFile(File file) {        if (file.isDirectory()) {          File[] files file.listFiles(new FileFilter() {            public boolean accept(File pathname) {              return pathname.isDirectory()                  || pathname.getPath().endsWith(.java);            }          });          for (File one : files)            scanFile(one);        } else {          try {            int index rc.incrementAndGet();            System.out.println(Read0:   index                    file.getPath());            queue.put(file);          } catch (InterruptedException e) {          }        }      }    };    exec.submit(read);    // 四个写线程    for (int index  0; index  4; index) {      // write thread      final int NO index;      Runnable write  new Runnable() {        String threadName  Write  NO;        public void run() {          while (true) {            try {              Thread.sleep(randomTime());              int index wc.incrementAndGet();              File file queue.take();              // 队列已经无对象              if (file exitFile) {                // 再次添加标志以让其他线程正常退出                queue.put(exitFile);                break;              }              System.out.println(threadName  :   index                      file.getPath());            } catch (InterruptedException e) {            }          }        }      };      exec.submit(write);    }    exec.shutdown();  }} 转http://blog.sina.com.cn/s/blog_67b077fe0100zrv9.html 转载于:https://www.cnblogs.com/sunxucool/archive/2013/03/13/2957377.html
http://www.ihoyoo.com/news/72973.html

相关文章:

  • 做竞价的网站可以做优化吗建设网站的公司济南兴田德润o评价
  • 友情链接对网站的影响哈尔滨松北区建设局网站
  • 适合新手做的网站项目wordpress生成纯html
  • 美点网络公司网站电商个人营业执照注册
  • 网站制作培训费用家庭装潢设计
  • 阿里云企业网站建设教程京东页面网页设计与制作实训报告
  • html网页设计环保网站中山大兴网站建设
  • 交互式网站模板做网站和网页的目的和作用
  • 长安网站建设免费咨询网站建设方案书应急处置方案
  • 西安 网站建设 费用大连免费网站制作
  • 开发一个商城需要多少钱seo刷关键词排名免费
  • 韶关做网站的西班牙语网站设计哪家好
  • 宁波做微信网站论述网站建设过程中应注意的问题
  • 郑州网站建设渠道兰州网站建设营销q479185700刷屏
  • 怎么做自己的优惠价网站个人电商网站建设范例
  • 郑州网站建设专业乐云seo网络营销的基本特征
  • 免费学做淘宝的网站百度注册域名免费建站
  • 网站建设推广专家服务网站建设存在哪些问题
  • 乐清做网站的公司网站支付怎么做虚拟币支付
  • 成都工程网站建设佛山网站制作在线
  • dede医院网站模板企业做网站的
  • 做动效网站沈阳网站开发培训多少钱
  • 企业网站建立网络虚拟社区时对于企业中公it培训机构怎么样
  • 衡阳公司做网站慈溪市网站建设
  • 品牌网站建设 结构中国最新经济新闻
  • NET网站开发程序员高端网站设计平台高端网站设计企业
  • 公司主营业务网站建设没有服务器怎么先做网站
  • 外贸网站建设公司案例最便宜做个网站多少钱
  • 开饰品店网站建设预算广州互邦物流网络优化建站
  • 以网站建设为开题报告苗木 网站模板