多线程实现的四种方式Thread裸线程Executor服务ForkJoin框架Actor模型1Thread裸线程 线程是并发最基本的单元Java线程本质上被映射到操作系统线程 ,并且每个线程对象对应着一个计算机底层线程每个线程有自己的栈空间,它占用了JVM进程空间的指定一部分线程的接口相当简明,你只需要提供一个Runnable;Java并发编程中的线程池拒绝策略用于处理任务超出线程池处理能力的情况,通常发生在核心线程最大线程均满负荷且任务队列已满时Java提供四种内置策略 ,开发者可根据业务需求选择或自定义,核心是权衡可靠性性能与数据完整性触发条件当线程池满足以下条件时触发拒绝策略核心线程数corePoolSize和最;Java线程池拒绝策略有以下四种AbortPolicy说明当线程池无法接受新任务时,会直接抛出RejectedExecutionException异常 ,这个异常继承自RuntimeException影响此策略会中断调用者的处理过程,需要调用者捕获该异常并进行相应处理CallerRunsPolicy说明当线程池无法接受新任务时,会将该任务回退到调用者线程。
1 线程的几种状态 线程有四种状态 ,任何一个线程肯定处于这四种状态中的一种1 产生New线程对象已经产生,但尚未被启动,所以无法执行如通过new产生了一个线程对象后没对它调用start函数之前2 可执行Runnable每个支持多线程的系统都有一个排程器 ,排程器会从线程池中选择一个;1 Java线程池在超出最大容量时会实施预设或自定的拒绝策略2 ThreadPoolExecutor内置四种拒绝策略DiscardPolicyAbortPolicyCallerRunsPolicyDiscardOldestPolicy3 DiscardPolicy会在任务被拒绝时不做任何处理,任务被直接丢弃4 AbortPolicy在任务被拒绝时会抛出RejectedExecutionException,中断执行流程;Java线程池在处理超过最大容量时 ,会采用预定义或自定义的拒绝策略默认情况下,ThreadPoolExecutor提供了四种策略DiscardPolicy 任务被拒绝时不采取任何操作,直接丢弃,源码中表现为一个空的rejectedExecution方法 AbortPolicy 拒绝时抛出RejectedExecutionException ,中断执行流程,线程会捕获这个异常 。

Java中的线程池使通过 Executor 框架实现的,使用线程池用到了 Executor , Executors , ExecutorService , ThreadPoolExecutor 这几个类 其中 Executors 是一个工厂方法 ,提供了快捷创建线程池的方法,常用的线程池又如下几种通过查看这三个工厂方法的源码得知底层都是创建了 ThreadPoolExecutor 对象,该;一内置拒绝策略及适用场景Java线程池提供四种内置策略 ,通过ThreadPoolExecutor的静态内部类实现AbortPolicy默认行为抛出RejectedExecutionException异常,中断任务提交适用场景对数据一致性要求高的系统如支付订单处理,需立即感知任务失败并触发补偿机制DiscardPolicy 行为静默丢弃被拒任务;Java线程池的拒绝策略主要有以下四种1 AbortPolicy默认策略当线程池无法处理新提交的任务时 ,直接抛出RejectedExecutionException异常运行时异常特点明确拒绝任务,适用于需要严格处理任务积压的场景,但需通过业务逻辑捕获异常并处理如重试或记录日志2 DiscardPolicy静默丢弃策略新任务。

本文来自作者[恭喜发财]投稿,不代表华智号立场,如若转载,请注明出处:https://www.bjxhzyykj.cn/miao/14688.html
评论列表(4条)
我是华智号的签约作者“恭喜发财”!
希望本篇文章《java四种线程池(java创建线程池的四种方式)》能对你有所帮助!
本站[华智号]内容主要涵盖:华智号,生活百科,小常识,生活小窍门,百科大全,经验网
本文概览:多线程实现的四种方式Thread裸线程Executor服务ForkJoin框架Actor模型1Thread裸线程线程是并发最基本的单元...