Java中如何解析有界队列的饱和策略(reject policy)的具体实现原理?
- 内容介绍
- 文章标签
- 相关推荐
本文共计994个文字,预计阅读时间需要4分钟。
在ExecutorService中使用时,我们知道其中有一个队列用于保存提交的任务。通过不同的构造函数,我们可以创建无界的线程池(ExecutorService.newCachedThreadPool)和有界的线程池(Exec)。
我们在使用ExecutorService的时候知道,在ExecutorService中有个一个Queue来保存提交的任务,通过不同的构造函数,我们可以创建无界的队列(ExecutorService.newCachedThreadPool)和有界的队列(ExecutorService newFixedThreadPool(int nThreads))。
无界队列很好理解,我们可以无限制的向ExecutorService提交任务。那么对于有界队列来说,如果队列满了该怎么处理呢?
今天我们要介绍一下java中ExecutorService的饱和策略(reject policy)。
以ExecutorService的具体实现ThreadPoolExecutor来说,它定义了4种饱和策略。分别是AbortPolicy,DiscardPolicy,DiscardOldestPolicy和CallerRunsPolicy。
本文共计994个文字,预计阅读时间需要4分钟。
在ExecutorService中使用时,我们知道其中有一个队列用于保存提交的任务。通过不同的构造函数,我们可以创建无界的线程池(ExecutorService.newCachedThreadPool)和有界的线程池(Exec)。
我们在使用ExecutorService的时候知道,在ExecutorService中有个一个Queue来保存提交的任务,通过不同的构造函数,我们可以创建无界的队列(ExecutorService.newCachedThreadPool)和有界的队列(ExecutorService newFixedThreadPool(int nThreads))。
无界队列很好理解,我们可以无限制的向ExecutorService提交任务。那么对于有界队列来说,如果队列满了该怎么处理呢?
今天我们要介绍一下java中ExecutorService的饱和策略(reject policy)。
以ExecutorService的具体实现ThreadPoolExecutor来说,它定义了4种饱和策略。分别是AbortPolicy,DiscardPolicy,DiscardOldestPolicy和CallerRunsPolicy。

