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

台州行app官网下载sem优化方法

台州行app官网下载,sem优化方法,最新网站推广哪家好,wordpress导入导出一、使用Executors创建线程池之前创建线程的时候都是用的Executors的newFixedThreadPool(),newSingleThreadExecutor(),newCachedThreadPool()这三个方法。当然Executors也是用不同的参数去new ThreadPoolExecutor1. newFixedThreadPool()创建线程数固定大小的线程池。 由于使用…一、使用Executors创建线程池之前创建线程的时候都是用的Executors的newFixedThreadPool(),newSingleThreadExecutor(),newCachedThreadPool()这三个方法。当然Executors也是用不同的参数去new ThreadPoolExecutor1. newFixedThreadPool()创建线程数固定大小的线程池。 由于使用了LinkedBlockingQueue所以maximumPoolSize 没用当corePoolSize满了之后就加入到LinkedBlockingQueue队列中。每当某个线程执行完成之后就从LinkedBlockingQueue队列中取一个。所以这个是创建固定大小的线程池。public static ExecutorService newFixedThreadPool(int nThreads) {return new ThreadPoolExecutor(nThreads, nThreads,0L, TimeUnit.MILLISECONDS,new LinkedBlockingQueue());}public ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,TimeUnit unit,BlockingQueue workQueue) {this(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue,Executors.defaultThreadFactory(), defaultHandler);}2.newSingleThreadPool()创建线程数为1的线程池由于使用了LinkedBlockingQueue所以maximumPoolSize 没用corePoolSize为1表示线程数大小为1,满了就放入队列中执行完了就从队列取一个。public static ExecutorService newSingleThreadExecutor() {return new FinalizableDelegatedExecutorService(new ThreadPoolExecutor(1, 1,0L, TimeUnit.MILLISECONDS,new LinkedBlockingQueue()));}3.newCachedThreadPool()创建可缓冲的线程池。没有大小限制。由于corePoolSize为0所以任务会放入SynchronousQueue队列中SynchronousQueue只能存放大小为1所以会立刻新起线程由于maxumumPoolSize为Integer.MAX_VALUE所以可以认为大小为2147483647。受内存大小限制。public static ExecutorService newCachedThreadPool() {return new ThreadPoolExecutor(0, Integer.MAX_VALUE,60L, TimeUnit.SECONDS,new SynchronousQueue());}public ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,TimeUnit unit,BlockingQueue workQueue) {this(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue,Executors.defaultThreadFactory(), defaultHandler);}二、使用ThreadPoolExecutor创建线程池ThreadPoolExecutor的构造函数public ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,TimeUnit unit,BlockingQueue workQueue,ThreadFactory threadFactory,RejectedExecutionHandler handler) {if (corePoolSize maximumPoolSize  0 ||maximumPoolSize keepAliveTime throw new IllegalArgumentException();if (workQueue  null || threadFactory  null || handler  null)throw new NullPointerException();this.corePoolSize  corePoolSize;this.maximumPoolSize  maximumPoolSize;this.workQueue  workQueue;this.keepAliveTime  unit.toNanos(keepAliveTime);this.threadFactory  threadFactory;this.handler  handler;}参数1、corePoolSize核心线程数大小当线程数2、maximumPoolSize 最大线程数 当线程数 corePoolSize的时候会把runnable放入workQueue中3、keepAliveTime  保持存活时间当线程数大于corePoolSize的空闲线程能保持的最大时间。4、unit 时间单位5、workQueue 保存任务的阻塞队列6、threadFactory 创建线程的工厂7、handler 拒绝策略任务执行顺序1、当线程数小于corePoolSize时创建线程执行任务。2、当线程数大于等于corePoolSize并且workQueue没有满时放入workQueue中3、线程数大于等于corePoolSize并且当workQueue满时新任务新建线程运行线程总数要小于maximumPoolSize4、当线程总数等于maximumPoolSize并且workQueue满了的时候执行handler的rejectedExecution。也就是拒绝策略。ThreadPoolExecutor默认有四个拒绝策略1、ThreadPoolExecutor.AbortPolicy()   直接抛出异常RejectedExecutionException2、ThreadPoolExecutor.CallerRunsPolicy()    直接调用run方法并且阻塞执行3、ThreadPoolExecutor.DiscardPolicy()   直接丢弃后来的任务4、ThreadPoolExecutor.DiscardOldestPolicy()  丢弃在队列中队首的任务当然可以自己继承RejectedExecutionHandler来写拒绝策略.int corePoolSize  1;int maximumPoolSize  2;int keepAliveTime  10;//BlockingQueue workQueue  new LinkedBlockingQueue();BlockingQueue workQueue  new ArrayBlockingQueue(5);ThreadFactory threadFactory  Executors.defaultThreadFactory();//线程池和队列满了之后的处理方式//1.跑出异常RejectedExecutionHandler handler  new ThreadPoolExecutor.AbortPolicy();RejectedExecutionHandler handler2  new ThreadPoolExecutor.CallerRunsPolicy();RejectedExecutionHandler handler3  new ThreadPoolExecutor.DiscardPolicy();RejectedExecutionHandler handler4  new ThreadPoolExecutor.DiscardOldestPolicy();ThreadPoolExecutor threadPoolExecutor  new ThreadPoolExecutor(corePoolSize, maximumPoolSize, keepAliveTime, TimeUnit.SECONDS, workQueue, threadFactory, handler2);for (int j  1; j threadPoolExecutor.execute(new Runnable() {public void run() {try {System.out.println(Thread.currentThread().getName());TimeUnit.SECONDS.sleep(1);} catch (InterruptedException e) {e.printStackTrace();}}});}System.out.println(threadPoolExecutor);}
http://www.zqtcl.cn/news/416289/

相关文章:

  • 丹阳做网站的公司重庆建设医院网站
  • 罗湖网站设计费用在线设计平台行业环境
  • 舟山市普陀区建设局网站淘宝怎样优化关键词
  • 网页上做ppt的网站好花西子网络营销案例分析
  • 网站设计说明书主要有什么成都企业网站seo
  • 免费素材下载网站网站建设进度时间表
  • 网站做关键词首页什么是网络营销?如何理解它的产生和把握它的特点?
  • centos做网站扬州市邗江区城乡建设局网站
  • 宁波网站建设模板制作企业做网站的作用
  • 南通网站快速收录禁止wordpress自动更新
  • 济南做网站最好的公司做一电影网站怎么赚钱吗
  • 中国城市建设网站宿州网站建设零聚思放心
  • 佛山网站免费制作struts2 做的网站
  • 做网站需要了解什么软件电商网站建设方案道客巴巴
  • 网站开发语言用什么好网站好坏怎么分析
  • 镇江制作网站的dw新建站点
  • 如果将域名指向网站东营网站建设收益高
  • 沈阳seo网站推广优化c2c网站的功能
  • 网站设计深圳云南制作网站的公司
  • 广州的网站建设公司对网络平台的优化有哪些建议
  • 培训网站模板免费网站建设投标书
  • 常德市建设局网站用tornado做网站
  • 网站快速排名优化报价现在最流行的网站开发工具
  • 支付公司网站建设会计分录合肥房产信息网官网
  • 镜像网站能否做google排名宝丰网站制作公司
  • 中国公路建设协会网站网站建设 业务培训
  • 原创文章网站开发教程安徽网站建设获客企业
  • 企业网站后台怎么做南京微网站开发
  • 网站seo在线优化广告策划书的格式
  • 网站解析怎么设置三北防护林体系建设网站