美文网首页
034 如何确保线程池不丢失任务?

034 如何确保线程池不丢失任务?

作者: 双鬼带单 | 来源:发表于2021-12-02 23:18 被阅读0次

如何确保线程池不丢失任务?

  1. 加快消费速度减少任务排队,降低丢失风险;
  2. 利用钩子方法,当任务超时时,任务重新入队,注意重复执行的问题。
  3. 如果并发量不大的话,可以考虑在拒绝策略中交由主线程完成,主线程会因此降低任务提交速度,进而降低线程池负担,形成反馈环
  4. 如果并发量大的话,可以重写拒绝策略,将被拒绝的任务以某种形式进行持久化,随后再次处理,这也是最稳健的方案:
  5. 如果外部使用了MO等异步队列,会相对简单些,未能提交到线程时的任务,仍保留在MQ 中不要标记为已消费

相关文章

  • 034 如何确保线程池不丢失任务?

    如何确保线程池不丢失任务? 加快消费速度减少任务排队,降低丢失风险; 利用钩子方法,当任务超时时,任务重新入队,注...

  • 线程池

    线程池的实现原理当向线程池提交一个任务之后,线程池是如何处理这个任务呢?(1)线程池判断核心线程池里的线程是否都在...

  • 线程池

    线程池解决的核心问题:资源管理问题。 线程池运行机制最主要的三个点: 线程池如何维护自身状态; 线程池如何管理任务...

  • JUC-(4)线程池(下)

    之前介绍了如何创建线程池以及创建线程池时各参数的意义.现在将如果提交任务到线程池中去执行. 提交任务 提交任务到线...

  • Java线程池的实现原理

    线程池的实现原理 当向线程池提交一个任务之后,线程池时如何处理的呢?让我们来看一下线程池的主要处理流程: 线程池判...

  • RabbitMQ面试题:如何确保消息不丢失? --- 2022-

    RabbitMq如何确保消息不丢失? RabbitMQ主要通过持久化机制,确保消息不丢,RabbitMQ持久化机制...

  • Java并发JUC——ThreadPoolExecutor 深入

    线程池的作用 ● 利用线程池管理并复用线程、控制最大并发数等既然使用了线程池就需要确保线程池是在复用的,每次new...

  • pthread 创建的动态线程池

    组织结构: 1,缓存工作的任务池,任务节点 2,存储工作线程的池,线程节点 3,任务池投递到工作线程的线程 4,工...

  • 线程池的生命周期和拒绝策略

    线程池的生命周期 线程池生命周期包括: RUNNING:接收新的任务并处理队列中的任务 SHUTDOWN:不接收新...

  • java线程池

    线程VS线程池 普通线程使用 创建线程池 执行任务 执行完毕,释放线程对象 线程池 创建线程池 拿线程池线程去执行...

网友评论

      本文标题:034 如何确保线程池不丢失任务?

      本文链接:https://www.haomeiwen.com/subject/njauxrtx.html