做网站要执照吗,传奇网页版在线玩,新项目开发流程,amh安装wordpress线程池可以减少创建和销毁线程的次数#xff0c;从而减少系统资源的消耗。当一个任务#xff08;Runnable或Callable对象#xff09;#xff08;Runnable无返回值#xff0c;Callable有返回值#xff09;被提交到线程池时#xff1a;
一、首先判断核心线程池中的线程是…线程池可以减少创建和销毁线程的次数从而减少系统资源的消耗。当一个任务Runnable或Callable对象Runnable无返回值Callable有返回值被提交到线程池时
一、首先判断核心线程池中的线程是否已经满了如果没满则创建一个核心线 程来执行任务否则进入下一步。 二、判断工作队列是否已满没有满则加入工作队列否则执行下一步。 三、判断线程数是否达到了最大值如果不是则创建非核心线程执行任务否 则执行饱和策略需要实现接口RejectedExecutionHandler。默认为ThreadPoolExecutor.AbortPolicy策略会抛出RejectedExecutionException异常。 1.内置的饱和策略 1.ThreadPoolExecutor.AbortPolicy拒绝执行任务。 2.ThreadPoolExecutor.CallerRunsPolicy由调用者线程执行该任务。 3.ThreadPoolExecutor.DiscardPolicy丢弃任务。 4.ThreadPoolExecutor.DiscardOldestPolicy丢弃最旧的任务并尝试重新提交新任务。 2.也可以自定义RejectedExecutionHandler接口来满足实际需求。 四、引申 1.线程池中的线程数超过核心线程数时多余的线程会在空闲一段时间超过某个阈值keepAliveTime后被销毁以减少资源消耗。 2.核心线程即使处于空闲状态也不会被销毁。 3.可以通过shutdown()方法来关闭线程池此方式会等待线程池中的所有任务都执行完成后再关闭线程池。 4.可以通过shutdownNow()方法来关闭 线程池此方式会尝试停止正在执行的任务后关闭线程池。 5.关闭线程池时会停止接受新任务。 微风不燥阳光正好你就像风一样经过这里愿你停留的片刻温暖舒心。
我是程序员小迷致力于C、C、Java、Kotlin、Android、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享若作品对您有帮助请关注、分享、点赞、收藏、在看、喜欢您的支持是我们为您提供帮助的最大动力。
欢迎关注。助您在编程路上越走越好