做网站生意旁,做美食哪些类型网站,海外医疗网站建设,做网站公司线程池 线程池的参数介绍拒绝策略 线程池的任务处理流程使用Executors创建常见的线程池 线程池的参数介绍 corePoolSize: (核心线程数)这是线程池中始终存在的线程数#xff0c;即使这些线程处于空闲状态。maximumPoolSize:(最大线程数) 是线程池允许的最大线程数。keepAliveT… 线程池 线程池的参数介绍拒绝策略 线程池的任务处理流程使用Executors创建常见的线程池 线程池的参数介绍 corePoolSize: (核心线程数)这是线程池中始终存在的线程数即使这些线程处于空闲状态。maximumPoolSize:(最大线程数) 是线程池允许的最大线程数。keepAliveTime:(保持存活时间)这是非核心线程超过corePoolSize的线程在变为空闲状态后可以在队列中等待新任务的最长时间。超过这个时间如果队列中没有新任务线程会被终止。unit:时间单位workQueue:这是一个阻塞队列用于存放等待执行的任务。threadFactory:这是一个用于创建新线程的工厂。handler:这是拒绝策略用于处理线程池无法处理新任务的情况。
拒绝策略
AbortPolicy:超过负荷,直接抛出异常CallerRunsPolicy: 由添加任务的线程负责执行DiscardOldestPolicy:丢弃队列中最⽼的任务DiscardPolicy():丢弃新来的任务
线程池的任务处理流程 如果正在运行的线程数小于corePoolSize则线程池会创建一个新的工作线程来执行任务。 如果正在运行的线程数大于或等于corePoolSize任务会被存入工作队列中等待。 如果队列满了且正在运行的线程数小于maximumPoolSize线程池会创建一个非核心线程来执行任务。 如果队列满了且正在运行的线程数大于或等于maximumPoolSize线程池会采用拒绝策略来处理该任务。 使用Executors创建常见的线程池
newFixedThreadPool创建一个固定大小的线程池。newSingleThreadExecutor创建一个只有一个线程的线程池。因为只有一个线程所以任务会按照提交顺序依次执行。newCachedThreadPool创建一个可缓存的线程池。线程池的大小会根据需要自动调整空闲线程会在一定时间后被回收。newScheduledThreadPool创建一个定时任务的线程池。可以按指定的时间间隔执行任务。