摘要: 七.任务交互 任务交互就是指两个线程获取任务速度的比较,按照规则进行下一步的处理。 1.applyToEither 两个线程任务进行比较,先获得执行结果的,执行下一步的操作,有返回值 public <U> CompletionStage<U> applyToEither(CompletionStag 阅读全文
posted @ 2021-12-25 20:11 小亲年 阅读(97) 评论(0) 推荐(0)
摘要: 高并发编程-异步-JDK8-CompletableFuture(二) 六、结果消费 1、thenAccept 与thenApply和thenCompose不同的是,结果消费没有返回一个CompletableFuture,只执行了执行结果Action,没有任何新值返回。 根据对结果的处理方式,消费函数 阅读全文
posted @ 2021-12-22 11:15 小亲年 阅读(79) 评论(0) 推荐(0)
摘要: 高并发编程-异步-JDK8-CompletableFuture 一、CompletableFuture简介 简单任务处理,可以使用Future,在实际的开发过程中,可以异步提交多个任务,业务逻辑也可能依赖,并行聚合的关系,此时用Futrue将会很麻烦。 CompletableFuture是Futur 阅读全文
posted @ 2021-12-16 17:33 小亲年 阅读(664) 评论(0) 推荐(0)
摘要: 高并发编程-异步-回顾-Callable&Future&FutureTask 一、Callable&Future&FutureTask简介 传统的异步操作通过Thread和Runnable创建线程,但是这两种方法都面临的一个问题就是没有返回值,所以在JDK1.5之后提供了Callable接口来实现, 阅读全文
posted @ 2021-12-16 10:46 小亲年 阅读(112) 评论(0) 推荐(0)
摘要: 高并发编程之如何选择适合的阻塞队列 一、线程池选择的队列实例 在我们使用到的线程池中,线程池有很多种类,不同种类的线程池锁选用的队列也是不一样的。 FixedThreadPool选取的是LinkedBlockingQueue CachedThreadPool选取的是 SynchronousQueue 阅读全文
posted @ 2021-12-14 17:00 小亲年 阅读(383) 评论(0) 推荐(0)
摘要: 高并发编程-队列-BlockingQueue-DelayQueue 一、DelayQueue简介 DelayQueue 支持延时的阻塞队列,内部采用采用优先队列PriorityQueue,同时实现了Delayed 接口,当创建元素的时候可以指定用户多久才能从队列中获取当前元素,延时满的才能出队。延时 阅读全文
posted @ 2021-12-10 18:25 小亲年 阅读(150) 评论(0) 推荐(0)
摘要: 高并发编程-队列-BlockingQueue-SynchronousQueue 一、SynchronousQueue简介 SynchronousQueue 也是继承了BlockingQueue,它是没有缓存区域的队列,一个生产者线程的put操作必须等待消费者线程的take操作 如上图所示,缓存区域的 阅读全文
posted @ 2021-12-07 14:56 小亲年 阅读(143) 评论(0) 推荐(0)
摘要: 高并发编程-队列-BlockingQueue-LinkedBlockingQueue 一、LinkedBlockingQueue简介 LinkedBlockingQueue是一个基于链表的阻塞队列,该队列在创建时候,默认大小为Integer.MAX_VALUE,这个数值很大的,所以可以说Linked 阅读全文
posted @ 2021-12-06 09:27 小亲年 阅读(1736) 评论(0) 推荐(0)
摘要: 高并发编程-队列-BlockingQueue-ArrayBlockingQueue 在介绍ArrayBlockingQueue之前,为了让大家更好的理解这个知识点,先把Queue和BlockingQueue的相关知识做个简单的介绍 一、Queue队列接口 Queue继承于Collection数据集合 阅读全文
posted @ 2021-12-01 19:57 小亲年 阅读(122) 评论(0) 推荐(0)