`
Cages
  • 浏览: 101707 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

RejectedPolicy--CallerRunsPolicy

 
阅读更多
这个policy看起来很有趣,thread-1开始执行,main也开始执行,当main执行完毕后3进入队列,这时因为main是空闲的,所以3由main来执行,当thread-1中的0执行完后main也执行完了,此时5进入,选择了main来执行,我的理解是此时选择thread-1也是可以的,剩下的输出同理。


分享到:
评论

相关推荐

    SpringBoot线程池详解含完整示例(值得珍藏)

    - CallerRunsPolicy:调用者线程直接执行任务,减小线程池压力。 - DiscardPolicy:默默地丢弃任务,不抛出异常,也不执行任务。 - DiscardOldestPolicy:丢弃队列中最老的任务,尝试再次提交当前任务。 理解和合理...

    java并发编程.docx

    - CallerRunsPolicy:由调用线程处理该任务,这实际上降低了并发程度,但避免了异常。 - DiscardOldestPolicy:丢弃队列中最老的任务,然后尝试重新执行,可能会持续丢弃任务。 - DiscardPolicy:简单地丢弃被拒绝的...

    Java+常用方法+自用

    - `setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy())`:设置拒绝策略为`CallerRunsPolicy`。这意味着如果提交的任务无法处理时,该任务将由调用者的线程来执行。 #### 三、线程池核心参数...

    【面试资料】-(机构内训资料)Java并发编程面试专题.zip

    - **拒绝策略**:设置合适的拒绝策略,如AbortPolicy、CallerRunsPolicy等。 10. **并发性能优化** - **减少上下文切换**:避免过度创建和销毁线程,使用线程池。 - **合理使用并发工具**:根据场景选择合适的...

    JAVA线程池的分析和使用

    - **CallerRunsPolicy**:调用者线程执行任务,减少新线程创建。 - **DiscardOldestPolicy**:丢弃队列中最旧的任务,为新任务腾出空间。 - **DiscardPolicy**:直接丢弃新任务,不做任何处理。 - **自定义策略*...

    ThreadPoolManager_线程池管理

    - **CallerRunsPolicy**:调用者运行,由提交任务的线程自己处理任务。 - **DiscardPolicy**:默默丢弃任务,不做任何处理。 - **DiscardOldestPolicy**:丢弃队列中最旧的任务,尝试再次提交当前任务。 4. **...

    线程池java写的代码

    - `CallerRunsPolicy`:调用者运行,由提交任务的线程来执行任务。 - `DiscardPolicy`:丢弃任务,不做任何处理。 - `DiscardOldestPolicy`:丢弃队列中最旧的任务,尝试再次提交当前任务。 ### 6. 线程池的生命...

    java socket线程池

    - CallerRunsPolicy:如果添加任务失败,则由提交任务的线程直接运行该任务。 - DiscardPolicy:如果添加任务失败,则直接丢弃该任务,没有任何异常抛出。 - DiscardOldestPolicy:丢弃队列中最靠前的任务,然后尝试...

    27道顶尖的Java多线程、锁、内存模型面试题!.zip

    - **线程池拒绝策略**:AbortPolicy、CallerRunsPolicy、DiscardPolicy、DiscardOldestPolicy。 6. **并发容器** - **ConcurrentHashMap**:线程安全的哈希表,比`synchronized` Map更高效。 - **...

    java 手术任务(线程池)

    - **CallerRunsPolicy**:调用者线程自己执行任务。 - **DiscardPolicy**:丢弃任务,不做任何处理。 - **DiscardOldestPolicy**:丢弃队列中最旧的任务,尝试再次提交当前任务。 5. **线程池优化** - **合理...

    百度2020校招Java研发工程师面试题笔试题(第三批).docx

    `CallerRunsPolicy`会使调用`execute`的线程处理任务,降低任务提交速度。 - `AbortPolicy`会直接抛出异常,丢弃任务。 - `DiscardPolicy`会丢弃任务,但不抛出异常。 - `DiscardOldestPolicy`会删除最旧的任务并...

    Spring3.2.6定时任务+线程池.docx

    这里采用的是`CallerRunsPolicy`策略,即调用者所在的线程来运行该任务。 #### 三、定时任务配置 除了线程池的配置外,还需要配置定时任务来定期执行指定的操作。以下是定时任务的具体配置: ```xml <!-- ...

    Java ee性能调优.rar

    - **拒绝策略**:配置适当的拒绝策略,如AbortPolicy、DiscardPolicy或CallerRunsPolicy,应对任务提交过多的情况。 7. **Web容器调优**: - **配置session管理**:合理设置session的生命周期和存储方式,避免...

    java多线程

    - **线程池的拒绝策略**:当线程池无法处理新任务时,可以设置不同的拒绝策略,如AbortPolicy、DiscardPolicy、DiscardOldestPolicy和CallerRunsPolicy。 4. **死锁问题** - **死锁定义**:两个或多个线程互相...

    spring 线程池实例

    -- 可选的拒绝策略,例如AbortPolicy、CallerRunsPolicy等 --> $AbortPolicy" /> ``` 然后,在我们的业务代码中,可以使用`@Autowired`注解注入`TaskExecutor`实例,通过`execute`方法提交异步任务: ```...

    java线程池

    示例代码`TestThreadPool`创建了一个线程池,其中corePoolSize为2,maximumPoolSize为4,keepAliveTime为3秒,工作队列大小为3,拒绝策略为`ThreadPoolExecutor.CallerRunsPolicy()`。这意味着当工作队列满时,提交...

    面试必备:Java线程池解析.pdf

    - handler:饱和策略处理器,当线程池无法处理新提交的任务时,按照既定的策略处理,常见的有AbortPolicy、DiscardPolicy、DiscardOldestPolicy和CallerRunsPolicy。 线程池的执行流程涉及execute()方法,当提交...

    JAVA高质量并发详解,多线程并发深入讲解

    探讨不同类型的拒绝策略,如`AbortPolicy`、`DiscardPolicy`、`DiscardOldestPolicy`和`CallerRunsPolicy`,以及如何使用`Semaphore`来控制队列的大小。 - **第29章:死锁的成因与预防** 分析导致死锁的常见原因...

Global site tag (gtag.js) - Google Analytics