![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Juc并发包
男人要霸气
这个作者很懒,什么都没留下…
展开
-
CompletableFuture.applyToEither方法(哪个先返回就用哪个)
/**假设有个需求:获取位置坐标有两种方式,百度地图/谷歌地图要求:同时调用百度/谷歌地图的接口,哪个先返回就用哪个的结果作为位置坐标,这样性能最佳。@param args*/public static void main(String[] args) {System.out.println(CompletableFuture.supplyAsync(() -> {try {Thread.sleep(3000);} catch (InterruptedException e原创 2022-04-22 21:17:42 · 455 阅读 · 0 评论 -
CompletableFuture异常处理
public class CompletableFutureDemo { public static void main(String[] args) { CompletableFuture.runAsync(() -> { calc(); }).whenComplete((v, e) -> { if (e == null) { System.out.println(" c原创 2022-04-22 20:50:30 · 2214 阅读 · 1 评论 -
CompletableFuture异步串行处理
public static void main(String[] args) { System.out.println(CompletableFuture.supplyAsync(() -> { return 1; }).thenApply(v -> {//v就是上次处理完成的结果 return v + 1; //v=1 }).thenCombine(CompletableFuture.suppl.原创 2022-04-22 21:06:34 · 370 阅读 · 0 评论 -
深入剖析Semaphore信号量
Semaphore是什么中文意思是信号量。就像红绿灯一样,绿灯行,红灯停的信号。Semaphore简易模型主要包括:计数器、等待队列。如图:Semaphore核心API构造方法:Semaphore(int permits):初始化计数器Semaphore(int permits, boolean fair):初始化计数器。fair为true时是公平的,也就是进入临界区的线程是先入先出的,谁先进来,谁就先出去;fair为false时是不公平的。核心方法:void acquire():原创 2020-08-13 14:51:11 · 182 阅读 · 0 评论 -
Java并发工具类之CountDownLatch和CyclicBarrier
文章目录介绍使用场景API构造方法常用方法示例介绍CountDownLatch 和 CyclicBarrier 是 Java 并发包提供的两个非常易用的线程同步工具类使用场景CountDownLatch 主要用来解决一个线程等待多个线程的场景,可以类比旅游团团长要等待所有的游客到齐才能去下一个景点CyclicBarrier 主要用来解决一组线程之间互相等待,更像是几个驴友之间不离不弃,互相等待APICountDownLatch API构造方法CountDownLatch原创 2020-05-28 17:19:44 · 187 阅读 · 0 评论 -
java 深入剖析FutureTask
FutureTask介绍首先来看下FutureTask的关系图,了解下是什么类关系图在IDEA中的快捷键为Ctrl+Alt+U由上图可以看出FutureTask实现了RunnableFuture接口,RunnableFuture接口又继承了Future接口和Runnable接口(Runnable是函数式接口)接下来看下Future接口的方法取消任务:boolean cancel(boolean mayInterruptIfRunning);判断任务是否取消:boolean isCa原创 2020-06-24 17:39:50 · 226 阅读 · 0 评论