ThreadPoolExecutor是Executor运行框架最重要的一个实现类。提供了线程池管理和任务管理是两个最主要的能力。这篇通过分析ThreadPoolExecutor的源代码来看看怎样设计和实现一个基于生产者消…
标签:java线程池
Java 异步转同步 ListenableFuture in Guava
ListenableFuture的说明 并发编程是一个难题,但是一个强大而简单的抽象可以显著的简化并发的编写。出于这样的考虑,Guava 定义了 ListenableFuture接口并继承了JDK con…
java内置线程池ThreadPoolExecutor源码学习记录
背景 公司业务性能优化,使用java自带的Executors.newFixedThreadPool()方法生成线程池。但是其内部定义的LinkedBlockingQueue容量是Integer.MAX_VALUE。考虑到…
《Effective Java》第10章 发并
第66条:同步访问共享的可变数据 Java语言规范保证读或者写一个变量是原子的(atomic ) ,除非这个变量的类型为long或者double. [java中long和double类型操作的非原子性探究]( http:…
JAVA 生产者租塞模式的线程池 ThreadPoolExecutor
package com.dubbo.analyzer.executor; import java.util.concurrent.ArrayBlockingQueue; import java.util.concurre…
java延迟队列
大多数用到定时执行的功能都是用任务调度来做的,单身当碰到类似订餐业务/购物等这种业务就不好处理了,比如购物的订单功能,在你的订单管理中有N个订单,当订单超过十分钟未支付的时候自动释放购物车中的商品,订单失效。这种高频率的…
java Concurrent包学习笔记(一):ExecutorService
一、介绍 ExecutorService是java.util.concurrent包中的一个线程池实现接口。其有两个实现类: 1)ThreadPoolExecutor:普通线程池通过配置线程池大小,能有效管…
精练代码:一次Java函数式编程的重构之旅
摘要:通过一次并发处理数据集的Java代码重构之旅,展示函数式编程如何使得代码更加精练。 难度:中级 基础知识 在开始之前,了解“高阶函数”和“泛型”这两个概念是必要的。 高阶函数就是接收函数参数的函数,能够根据传入的函…
java.util.concurrent.CountDownLatch
from when and where: CountDownLatch是在java1.5被引入的,跟它一起被引入的并发工具类还有CyclicBarrier、Semaphore、ConcurrentHashMap…
Java Concurrency - 线程执行器
Usually, when you develop a simple, concurrent-programming application in Java, you create some Runnable objec…
使用java自带的定时任务ScheduledThreadPoolExecutor
ScheduledThreadPoolExecutor是ThreadPoolExecutor的子类; JDK api里是这么说的: ThreadPoolExecutor,它可另行安排在给定的延迟后运行命令,…
Java并发编程实战---第六章:任务执行
废话开篇 今天开始学习Java并发编程实战,很多大牛都推荐,所以为了能在并发编程的道路上留下点书本上的知识,所以也就有了这篇博文。今天主要学习的是任务执行章节,主要讲了任务执行定义、Executor、线程池和Execut…