(33)...J.U.C
IT云清
技术专家,团队主管,Apache Seata Committer,公众号:java4all
展开
-
LinkedBlockingQueue和ArrayBlockingQueue对比
对比一下LinkedBlockingQueue和ArrayBlockingQueue的区别。1.底层数据结构不同LinkedBlockingQueue底层是单向链表,只有一个后继指针 /** * Linked list node class */ static class Node<E> { E item; ...原创 2018-09-13 11:34:25 · 501 阅读 · 0 评论 -
LinkedBlockingQueue源码解析
java.util.concurrent.LinkedBlockingQueue是一个底层为单向链表的,有界的,FIFO阻塞队列;访问和移除操作是在队头,添加操作在队尾进行,并且使用不同的锁进行保护。在使用线程池时,如下两种方式创建的线程池,默认都是使用的LinkedBlockingQueue: Executors.newFixedThreadPool(3); ...原创 2018-09-13 14:13:25 · 250 阅读 · 0 评论 -
线程池的创建和使用
几种线程池的创建和使用目录:1.newFixedThreadPool固定线程池2.newSingleThreadExecutor一个线程的线程池3.newCachedThreadPool缓存线程池4.ThreadPoolExecutor5.Future获取返回结果1.newFixedThreadPool固定线程池示例:ExecutorService fixedThreadPo...原创 2018-09-19 17:12:34 · 4771 阅读 · 5 评论 -
ListeningExecutorService的使用
由于普通的线程池,返回的Future,功能比较单一;Guava 定义了 ListenableFuture接口并继承了JDK concurrent包下的Future 接口,ListenableFuture 允许你注册回调方法(callbacks),在运算(多线程执行)完成的时候进行调用。1.使用方法如下:1.创建线程池2.装饰线程池3.任务处理4.回调函数处理5.所有任务完成后处理...原创 2018-09-19 18:42:21 · 17793 阅读 · 4 评论