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

漳州手机网站建设公司创建网站需要哪些要素

漳州手机网站建设公司,创建网站需要哪些要素,wordpress 抽奖,wordpress链接优化文章目录 一、简介二、AbortPolicy拒绝策略A. 概述B. 拒绝策略实现原理C. 应用场景D. 使用示例 三、CallerRunsPolicy拒绝策略A. 概述B. 拒绝策略实现原理C. 应用场景D. 使用示例 四、DiscardPolicy拒绝策略A. 概述B. 拒绝策略实现原理C. 应用场景D. 使用示例 五、DiscardOldes… 文章目录 一、简介二、AbortPolicy拒绝策略A. 概述B. 拒绝策略实现原理C. 应用场景D. 使用示例 三、CallerRunsPolicy拒绝策略A. 概述B. 拒绝策略实现原理C. 应用场景D. 使用示例 四、DiscardPolicy拒绝策略A. 概述B. 拒绝策略实现原理C. 应用场景D. 使用示例 五、DiscardOldestPolicy拒绝策略A. 概述B. 拒绝策略实现原理C. 应用场景D. 使用示例 六、总结各种拒绝策略的特点和适用场景 一、简介 在Java多线程编程中我们通常使用线程池来管理和调度任务。线程池由一组预先创建的线程组成可以重复利用这些线程来执行多个任务避免频繁地创建和销毁线程而带来的性能开销。 当线程池中的任务队列已满且无法再接受新的任务时就需要采取拒绝策略来处理这种情况。拒绝策略定义了当无法再接受新的任务时如何处理这些被拒绝的任务。 Java提供了四种常见的拒绝策略 AbortPolicy抛出异常默认的拒绝策略。当任务无法被提交给线程池时会直接抛出RejectedExecutionException异常。 CallerRunsPolicy调用者运行当任务无法被提交给线程池时会由提交任务的线程自己执行该任务。 DiscardPolicy直接丢弃当任务无法被提交给线程池时直接丢弃该任务没有任何提示或处理。 DiscardOldestPolicy丢弃最旧任务当任务无法被提交给线程池时会丢弃队列中最早的一个任务然后尝试再次提交当前任务。 二、AbortPolicy拒绝策略 A. 概述 AbortPolicy是ThreadPoolExecutor的默认拒绝策略当任务无法被提交给线程池时会直接抛出RejectedExecutionException异常。 B. 拒绝策略实现原理 实现RejectedExecutionHandler接口在rejectedExecution方法中抛出异常。 public class AbortPolicy implements RejectedExecutionHandler {public void rejectedExecution(Runnable r, ThreadPoolExecutor e) {throw new RejectedExecutionException(Task r.toString() rejected from e.toString());} }C. 应用场景 适用于对任务提交失败要求敏感的场景需要明确知道任务是否被接受并执行。 D. 使用示例 当线程池的任务队列和线程队列都已满的情况下执行决绝策略 public class Task implements Runnable {private final int index;public Task(int index) {this.index index;}Overridepublic void run() {System.out.println(Thread.currentThread().getName() index);} }public class Main {public static void main(String[] args) {// 创建线程池ThreadPoolExecutor threadPool new ThreadPoolExecutor(1, 1, 0L,TimeUnit.SECONDS,new LinkedBlockingQueue(1),new ThreadPoolExecutor.AbortPolicy());try {// 提交任务threadPool.execute(new Task(1));threadPool.execute(new Task(2));threadPool.execute(new Task(3));} catch (RejectedExecutionException e) {e.printStackTrace();} finally {// 关闭线程池threadPool.shutdown();}} }三、CallerRunsPolicy拒绝策略 A. 概述 CallerRunsPolicy是一种简单的拒绝策略当任务无法被提交给线程池时会由提交任务的线程自己执行该任务。 B. 拒绝策略实现原理 实现RejectedExecutionHandler接口在rejectedExecution方法中使用提交任务的线程来执行任务。 public class CallerRunsPolicy implements RejectedExecutionHandler {public void rejectedExecution(Runnable r, ThreadPoolExecutor e) {if (!e.isShutdown()) {r.run();}} }C. 应用场景 适用于对任务提交失败要求较低的场景通过调用线程来执行任务避免任务丢失。 D. 使用示例 public class Task implements Runnable {private final int index;public Task(int index) {this.index index;}Overridepublic void run() {System.out.println(Thread.currentThread().getName() index);} }public class Main {public static void main(String[] args) {// 创建线程池ThreadPoolExecutor threadPool new ThreadPoolExecutor(1, 1, 0L,TimeUnit.SECONDS,new LinkedBlockingQueue(1),new ThreadPoolExecutor.CallerRunsPolicy());try {// 提交任务threadPool.execute(new Task(1));threadPool.execute(new Task(2));threadPool.execute(new Task(3));} catch (RejectedExecutionException e) {e.printStackTrace();} finally {// 关闭线程池threadPool.shutdown();}} }四、DiscardPolicy拒绝策略 A. 概述 DiscardPolicy是一种简单的拒绝策略当任务无法被提交给线程池时会直接丢弃该任务没有任何提示或处理。 B. 拒绝策略实现原理 实现RejectedExecutionHandler接口在rejectedExecution方法中不做任何操作即丢弃任务。 public class DiscardPolicy implements RejectedExecutionHandler {public void rejectedExecution(Runnable r, ThreadPoolExecutor e) {// Do nothing, discard the task} }C. 应用场景 适用于对任务提交失败不敏感的场景对任务丢失没有特殊要求。 D. 使用示例 public class Task implements Runnable {private final int index;public Task(int index) {this.index index;}Overridepublic void run() {System.out.println(Thread.currentThread().getName() index);} }public class Main {public static void main(String[] args) {// 创建线程池ThreadPoolExecutor threadPool new ThreadPoolExecutor(1, 1, 0L,TimeUnit.SECONDS,new LinkedBlockingQueue(1),new ThreadPoolExecutor.DiscardOldestPolicy());try {// 提交任务threadPool.execute(new Task(1));threadPool.execute(new Task(2));threadPool.execute(new Task(3));} catch (RejectedExecutionException e) {e.printStackTrace();} finally {// 关闭线程池threadPool.shutdown();}} }五、DiscardOldestPolicy拒绝策略 A. 概述 DiscardOldestPolicy是一种拒绝策略当任务无法被提交给线程池时会丢弃最早的一个任务然后尝试再次提交。 B. 拒绝策略实现原理 实现RejectedExecutionHandler接口在rejectedExecution方法中从队列中获取最早的任务并丢弃再次提交当前任务。 public class DiscardOldestPolicy implements RejectedExecutionHandler {public void rejectedExecution(Runnable r, ThreadPoolExecutor e) {if (!e.isShutdown()) {e.getQueue().poll();e.execute(r);}} }C. 应用场景 适用于对新任务优先级比较高的场景可以丢弃旧的任务以保证及时处理新任务。 D. 使用示例 public class Task implements Runnable {private final int index;public Task(int index) {this.index index;}Overridepublic void run() {System.out.println(Thread.currentThread().getName() index);} }public class Main {public static void main(String[] args) {// 创建线程池ThreadPoolExecutor threadPool new ThreadPoolExecutor(1, 1, 0L,TimeUnit.SECONDS,new LinkedBlockingQueue(2),new ThreadPoolExecutor.DiscardOldestPolicy());try {// 提交任务threadPool.execute(new Task(1));threadPool.execute(new Task(2));threadPool.execute(new Task(3));threadPool.execute(new Task(4));} catch (RejectedExecutionException e) {e.printStackTrace();} finally {// 关闭线程池threadPool.shutdown();}} }六、总结 各种拒绝策略的特点和适用场景 AbortPolicy对任务提交失败要求敏感需要明确知道任务是否被接受并执行。CallerRunsPolicy对任务提交失败要求较低通过调用线程来执行任务避免任务丢失。DiscardPolicy对任务提交失败不敏感对任务丢失没有特殊要求。DiscardOldestPolicy适用于新任务优先级高丢弃旧任务以保证及时处理新任务。
http://www.dnsts.com.cn/news/278372.html

相关文章:

  • apache设置网站网址天津市城乡和住房建设厅网站
  • 做外贸到什么网站上发布比较好上海创意型网站建设
  • 做线上网站需要多少钱设计上海网站
  • 建设厅网站修改密码wordpress带投稿模板
  • 做刷单网站违法吗企业网络构建
  • 移动端网站开发技术设计师可以在哪些网站接单
  • 旅游类网站如何做推广软件人力外包
  • 网站设计制作要多少钱做网站需要去哪里备案
  • 网站建设优化陕西装饰公司怎么找客户
  • wordpress 打不开文明seo技术教程网
  • 游戏网站制作板式如何搭建门户网站
  • 汕头专业的开发网站方案湛江本地做网站
  • 做网站 中企动力枣庄企业网站建设
  • 信阳做网站汉狮网络网站安全维护包括什么
  • 直播间挂人气自助网站免费网站建设ppt
  • 网站开发怎么实现用户一对一发文字图片淄博网站建设 百度知道
  • wordpress 4.0 多站点网站接入激励视频广告
  • 地旺建设官方网站网站建设与运营的预算方案
  • 基于wed的网站开发罗田住房和城乡建设局网站
  • 西昌有没有可以做网站的公司自己建网站做外贸
  • 有什么网站是可以做ui的优秀网页设计网址
  • 2017做网站挣钱接单赚钱平台
  • 厦门网站怎么做phicomm怎么做网站
  • 罗湖做网站的公司湖北工业信息化网站备案
  • 那些企业网站做的漂亮网站及微站建设合同验收
  • 网站改版打造全新网站网络推广策划案格式模板和范文
  • 北京正规做网站公司晋江论坛匿名区
  • 营销型网站如何制作wordpress的样式表
  • 柳州专业网站推广公司电商平台
  • 网站建设收费标准咨询怎样制作一个自己的网页呢