诀窍是使用固定的队列大小和:

new ThreadPoolExecutor.CallerRunsPolicy()

我也建议使用Guava的ListeningExecutorService。

这是消费者/生产者队列的示例。

private ListeningExecutorService producerExecutorService = MoreExecutors.listeningDecorator(newFixedThreadPoolWithQueueSize(5, 20));

private ListeningExecutorService consumerExecutorService = MoreExecutors.listeningDecorator(newFixedThreadPoolWithQueueSize(5, 20));

private static ExecutorService newFixedThreadPoolWithQueueSize(int nThreads, int queueSize) {

return new ThreadPoolExecutor(nThreads, nThreads,

5000L, TimeUnit.MILLISECONDS,

new ArrayBlockingQueue(queueSize, true), new ThreadPoolExecutor.CallerRunsPolicy());

}

任何更好的东西,你可能想考虑像RabbitMQ或ActiveMQ一样的MQ,因为他们有QoS技术。

java 过载_java – ExecutorService,避免任务队列过载的标准方式相关推荐

  1. java匿名内部类_java中匿名内部类的两种实现方式

    使用匿名内部类课使代码更加简洁.紧凑,模块化程度更高.内部类能够访问外部内的一切成员变量和方法,包括私有的,而实现接口或继承类做不到.然而这个不是我说的重点,我说的很简单,就是匿名内部类的两种实现方式 ...

  2. java 原子量_Java原子量 - Rickxue的个人空间 - OSCHINA - 中文开源技术交流社区

    所谓的原子量即操作变量的操作是"原子的",该操作不可再分,因此是线程安全的. 为何要使用原子变量呢,原因是多个线程对单个变量操作也会引起一些问题.在Java5之前,可以通过vola ...

  3. java 原子量_Java線程:新特征-原子量

    所謂的原子量即操作變量的操作是"原子的",該操作不可再分,因此是線程安全的. 為何要使用原子變量呢,原因是多個線程對單個變量操作也會引起一些問題.在Java5之前,可以通過vola ...

  4. java并发中ExecutorService的使用

    文章目录 创建ExecutorService 为ExecutorService分配Tasks 关闭ExecutorService Future ScheduledExecutorService Exe ...

  5. java.util.concurrent.ExecutorService 接口 源码

    2019独角兽企业重金招聘Python工程师标准>>> 线程池相关 源码: package java.util.concurrent;import java.util.List; i ...

  6. java信号灯_java 信号灯 Semaphore

    http://blog.csdn.net/java2000_wl/article/details/23556859 import java.util.concurrent.ExecutorServic ...

  7. Java线程池ExecutorService

    开篇前,我们先来看看不使用线程池的情况: new Thread的弊端 执行一个异步任务你还只是如下new Thread吗? new Thread(new Runnable() {@Overridepu ...

  8. Java线程池ExecutorService中重要的方法

    ExecutorService 介绍 ExecutorService是java线程池定义的一个接口,它在java.util.concurrent包中,在这个接口中定义了和后台任务执行相关的方法. Ja ...

  9. 【源码+教程】Java课设项目_12款最热最新Java游戏项目_Java游戏开发_Java小游戏_飞翔的小鸟_王者荣耀_超级玛丽_推箱子_黄金矿工_贪吃蛇

    马上就要期末了,同学们课设做的如何了呢?本篇为大家带来了12款热门Java小游戏项目的源码和教程,助力大家顺利迎接暑假![源码+教程]Java课设项目_12款最热最新Java游戏项目_Java游戏开发 ...

最新文章

  1. python自定义包或模块在Linux服务器导入错误的解决办法
  2. ⑨⑧借鉴成功者经验,吸取失败者教训
  3. shiro 解决 跨域(仅端口不同) 登陆 问题
  4. 通过配置的方式Autofac 《第三篇》
  5. 服务器图文消息发送规则,群发图文规则 - CurtainRight的个人空间 - OSCHINA - 中文开源技术交流社区...
  6. [教程]centos下设置网卡
  7. 02: DOM 实例
  8. count(*),count(1)和count(字段)的区别
  9. ajax 关闭弹窗并跳转到url_Python 爬虫 | Ajax数据爬取
  10. 帅爆了!推荐10款程序员专用高清壁纸!!
  11. 基础篇:源码 Linux+Apache+PHP+MySQL环境配置方法-08CMS网站
  12. access 调用 webbrowser_函数调用过程与栈帧结构 - wuli涛涛
  13. html 画布 重置,html5实现清空画布的三种方法
  14. 菜鸟学MAC - mac十大使用技巧
  15. npm --save 的含义
  16. 什么是云监控,云监控工具
  17. Yii Framework 开发教程(30) Zii组件-ListView 示例
  18. 马其顿驱动电源项目调光LED闪烁原因
  19. PHP:使用静态变量
  20. IP Camera采集方案

热门文章

  1. 2018-2019 ACM-ICPC, Asia Shenyang Regional Contest题解
  2. CCF-CSP认证考试历年试题集
  3. scala 与 spark 并行化
  4. 【编程】概念的理解 —— socket
  5. 唐诗辑注 —— 逢雪宿芙蓉山主人、十五夜望月、小儿垂钓
  6. Linux Tricks —— 快速清空文本文件内容、文本内容追加(tee)
  7. Tricks(四十六)—— 四个数中最小值的实现
  8. 程序结构程序设计(三) ——递归及递归举例
  9. python利器-Python 数据可视化利器
  10. python官网的sdk下载详细步骤-Python SDK(beta)