2018年9月


撰写于    浏览:889 次  分类: 多线程与并发
ExecutorService 是一个接口,提供了管理终止的方法,以及可为跟踪一个或多个异步任务执行状况而生成Future 的方法。方法摘要从Executor 接口中继承了不跟踪异步线程,没有返回的 execute 方法:execute(Runnable command):在未来某个时间执行给定的命令。该命令可能在新的线程、已入池的线程或者正调用的[...]

撰写于    浏览:1258 次  分类: 多线程与并发
在开发服务器端软件项目时,软件经常需要处理执行时间很短而数目却非常巨大的请求,如果为每一个请求创建一个新的线程,会导致性能上的瓶颈,因为线程对象的创建和销毁需要JVM频繁地进行处理,如果请求的执行时间很短,可能花在创建和销毁线程对象的时间大于真正执行任务的时间,若这样,则系统性能大幅降低。在JDK5中提供了线程池的支持,主要的作用是支持高并发的访问[...]

撰写于    浏览:1220 次  分类: 数据结构
好的文章,直接收录:https://www.cnblogs.com/CarpenterLee/p/5488070.html

撰写于    浏览:650 次  分类: Java8基础知识
Java Stream API入门篇https://www.cnblogs.com/CarpenterLee/p/6545321.htmlJava Stream API进阶篇https://www.cnblogs.com/CarpenterLee/p/6550212.html深入理解Java Stream流水线https://www.cnblogs[...]

撰写于    浏览:1502 次  分类: Java8基础知识
这篇文章写的很好,作者很用心,直接收录了:https://www.cnblogs.com/CarpenterLee/p/6507161.html本系列只专注jdk1.8,希望搜索和整理更全面的jdk1.8新资料。

撰写于    浏览:648 次  分类: 数据结构
1.jdk中TreeMap,TreeSet底层用的什么数据结构?红黑树2.红黑树的数据结构怎么定义的?enum Color { RED = 0, BLACK = 1 }; struct RBTreeNode { struct RBTreeNode*left, [...]

撰写于    浏览:953 次  分类: 数据结构
在jdk1.8中,数组的遍历,可以使用lambda的形式,但是要注意要用包装类,而不是基本类型import java.util.Arrays; public class ArrayDemo { public static void main(String[] args) { Integer array1[...]

撰写于    浏览:42064 次  分类: disruptor研究
ArrayBlockingQueue的问题ArrayBlockingQueue在实际使用过程中,会因为加锁和伪共享等出现严重的性能问题,我们下面来分析一下。加锁现实编程过程中,加锁通常会严重地影响性能。线程会因为竞争不到锁而被挂起,等锁被释放的时候,线程又会被恢复,这个过程中存在着很大的开销,并且通常会有较长时间的中断,因为当一个线程正在等待锁时,[...]

撰写于    浏览:449 次  分类: disruptor研究
背景Disruptor是英国外汇交易公司LMAX开发的一个高性能队列,研发的初衷是解决内存队列的延迟问题(在性能测试中发现竟然与I/O操作处于同样的数量级)。基于Disruptor开发的系统单线程能支撑每秒600万订单,2010年在QCon演讲后,获得了业界关注。2011年,企业应用软件专家Martin Fowler专门撰写长文介绍。同年它还获得了[...]

撰写于    浏览:296 次  分类: Java8基础知识
1 线程public class Test { public static void main(String[] args) { // Java8之前: new Thread(new Runnable() { public void run() { [...]