多线程:多线程饱和拒绝策略

前言:当线程的数量超过最大承受数量的适合,会发起拒绝策略用于自我保护

一、AbortPolicy(默认):直接抛出RejectedExecutionException异常

二、CallerRunsPolicy:调用者运行使用的一种机制,不会将任务抛弃,也不会抛出异常,而是将任务回退给调用者

三、DiscardOldestPolicy:抛弃队列中等待最久的任务,然后将当前任务加入到队列中,然后试着提交当前任务

四、DiscardPolicy:直接丢弃任务,不做任何处理也不会抛弃异常

 

补充

一、既然线程数量可能会超过最大承受数量,那么多少线程数是合理的呢?

1、CPU密集型:最大线程数应为cpu核心数+1

2、I/O密集型

1)、cpu核心数 * 2

2)、使用公式:cpu核数 /(1 - 阻塞系数),阻塞系数一般在0.8~0.9之间,而书中提到的范围是0~1

推荐:http://www.1994july.club/

现在什么行业赚钱来的快,十大最吃香又稳定的暴利行业

iphone图片导出有哪些方法,3种方法将照片批量保存到电脑

你可能感兴趣的:(多线程:多线程饱和拒绝策略)