并发编程
文章平均质量分 89
blackoon88
种星星 摘星星
展开
-
java多线程学习之【ThreadLocal】
本文主要是讲解ThreadLocal的概念,基本用法,使用场景,底层代码原理剖析。原创 2022-07-20 17:38:42 · 536 阅读 · 0 评论 -
java多线程学习之【线程创建使用】
本文主要是讲解创建线程的方式,包括基本的创建,和使用不同的线程池进行创建,基本用法,使用场景,底层代码原理剖析等。线程池提供了一种限制和管理资源(包括执行一个任务)。每个线程池还维护一些基本统计信息,例如已完成任务的数量。继承Thread类,重写run方法。2.2 实现Runnable接口注意,2.1继承Thread类,本质上就是实现Runnable,因为Thread实现了Runnable。2.3 实现Callable接口具体任务的方法,一个是run方法,一个call方法,call方法有返回值,原创 2022-07-05 17:37:54 · 262 阅读 · 0 评论 -
java多线程学习之【atomic】
本文主要是讲解atomic的概念,基本用法,使用场景,底层代码原理剖析。在java.util.concurrent.atomic包下atomic一般指原子操作类,主要分为四种类型的原子更新类:原子更新基本类型、原子更新数组类型、原子更新引用和原子更新属性。原子更新基本类型:使用原子方式更新基本类型;原子更新数组:通过原子更新数组里的某个元素;原子更新引用类型:需要更新引用类型往往涉及多个变量;原子更新字段类:需要原子更新某个类的某个字段。...原创 2022-07-01 15:00:41 · 1860 阅读 · 0 评论 -
java多线程学习之【Exchanger】
本文主要是讲解Exchanger的概念,基本用法,使用场景,底层代码原理剖析。按照源码注释,翻译成中文,就是以下内容:Exchanger 提供了一些方法:Exchanger应用在遗传算法和管道的设计。四、源码剖析Exchanger 的源码在JUC并发工具中,相对简单:exchange及关联代码五、和其他工具比较Exchanger,Semaphore,CountDownLatch与CyclicBarrier区别总结主要讲解Exchanger,后面重点讲AQS。...原创 2022-06-20 17:52:41 · 614 阅读 · 0 评论 -
java多线程学习之【Semaphore】
本文主要是讲解Semaphore的概念,基本用法,使用场景,底层代码原理剖析。按照源码注释,翻译成中文,就是以下内容:Semaphore 提供了一些方法:信号量就是一个计数器,应用很广泛。我们构建一个有界队列,在队列满的时候希望阻塞而不是中断。那么信号量的大小就是队列的边界。代码如下3.2资源池四、源码剖析Semaphore 的源码在JUC并发工具中,相对复杂点:Semaphore 构造函数中包含指定许可的数量和是否是公平锁;acquire()release五、和其他工原创 2022-06-17 15:17:17 · 357 阅读 · 0 评论 -
java多线程学习之【CyclicBarrier】
本文主要是讲解CyclicBarrier的概念,基本用法,使用场景,底层代码原理剖析。按照源码注释,翻译成中文,就是以下内容:CyclicBarrier 提供了一些方法:主要用于多线程等待,Runnable命令执行后,多线程执行直到释放。代码如下四、源码剖析CyclicBarrier 的源码在JUC并发工具中,相对复杂点:CyclicBarrier 构造函数中指定的count和可选的Runnable命令;await(),等待直到其他线程都到达栅栏,并且每执行一次会将全局变量count减去1原创 2022-06-16 18:11:43 · 276 阅读 · 0 评论 -
java多线程学习之【CountDownLatch】
本文主要是讲解CountdownLatch的概念,基本用法,使用场景,底层代码原理剖析。按照源码注释,翻译成中文,就是以下内容:CountDownLatch 提供了一些方法:倒计时门栓是一个多用途的同步工具,可以用于许多目的。初始化作为一个门或者门栓的开关。当所有线程调用await在门口等待,直到一个线程调用countDown且count等于0而被打开。计数初始化为N,可以用来使一个线程等待N线程完成了一些行动,或一些行动已经完成N次。线程调用wait时,不需要计数达到零,它只是阻止任何线程继续运行aw原创 2022-06-15 18:04:29 · 406 阅读 · 0 评论 -
如何优雅高效的合并HTTP并发请求的结果
文章目录前言一、方案调研选择1.一种是自己造轮子2.一种选择开源框架来解决问题二、业务流程图三、基础代码1.OkHttp客户端配置,主要是配置连接池和Dispatcher。2.异步请求3.实现回调接口4.等待通知机制四、配置优化连接池参数分发器dispatcher参数超时时间参数总结前言最近做到一个项目,涉及到一个应用场景:对外提供一个接口,接口的内部逻辑是要调用多次第三方接口的返回数据进行组装处理,接口的响应时间100ms以内。对于这个问题,会涉及到异步调用请求,处理回调,等待-通知机制等过程。对原创 2022-03-30 15:15:03 · 2841 阅读 · 0 评论