并发编程
KeepSayingNo
分享改变世界
展开
-
浓浓棕情之自产自消
今天是端午节,祝大家端午节快乐。今年的疫情让很多人放弃了出行的计划,宅在家里,我也是无聊,想到写点什么东西和大家分享下,希望有感兴趣的看看,如果有什么想法欢迎交流。生产者和消费者是软件世界里很寻常的场景,然而大多数程序员平时写代码不会用到,因为很多系统都是用来查询数据展示数据,写写CRUD就好了。随着MQ的横空出世,让大家都醉心于这种好用的中间件,配置一个Topic,发送消息就调用客户端的发送接口,接收消息继承一个接口,写一个Listener,整个从生产到消费全流程就这种友好的解决了,性能和完整性更不用原创 2020-06-25 21:38:41 · 511 阅读 · 0 评论 -
CountDownLatch多任务处理利器
CountDownLatch 是由java并发包提供的一个同步计数器,从字面意义上去理解可以分成两部分CountDown 和 Latch,CountDown就是计数的意思,Latch是门闩,这个同步工具就是通过保证多线程环境下,通过门闩限制主线程执行,子线程执行后计数减1,直到减为0,门闩打开,主线程执行。场景一:...原创 2020-04-25 21:34:36 · 413 阅读 · 10 评论 -
线程池可以吞掉异常
本文由线程池吞掉异常出发,讲解了程序开发过程中应该怎么去捕获异常,打印堆栈信息,并且进一步阐述了线程池内部的接口和类的关系。原创 2016-12-03 21:05:04 · 6340 阅读 · 1 评论 -
多线程中采用锁控制并发
在多线程编程当中对于共享变量的控制非常重要,平常的程序当中由于是单线程去处理的,因此不会出现变量资源同时被多个线程同时访问修改,程序的运行是顺序的。然而多线程的环境中就会出现资源同时被多个线程获取,同时去做修改的状况。本文主要讲了ReentrantLock 和 Sychronized这两种方式对锁进行控制。原创 2016-07-27 22:51:00 · 5098 阅读 · 6 评论 -
ThreadLocal类维持线程封闭性
在《多线程采用锁并发控制》一文中采用锁保证了多线程下类的成员变量的同步。如果需要保证线程内部对变量的访问是隔离的,线程内部对变量的操作不会影响其他的线程,这又该如何操作了。ThreadLocal对象通常用于防止对可变的单实例变量或全局变量进行共享。原创 2017-03-26 12:56:31 · 912 阅读 · 0 评论 -
理解线程的join方法
在多线程环境下很难保证结果的一致性,多线程带来的好处就是并行处理提升效率,弊端就是出现了问题很难定位,可以看个例子就明白了,请将下面的代码拷到本地去执行,就会发现每次执行的结果不一样。 代码1public class JoinDemo { public static void main(String[] args) { Thread thread1 = new Thread(原创 2018-01-29 23:14:01 · 536 阅读 · 0 评论 -
多线程处理返回值
好久没写博客,看了下上一篇发表的时间发现已是一年多前,看到消息处的小红点,点了下发现仍然有很多新朋友关注了我,给我留言,给我的博文点赞,让我发现技术分享的重要性,不仅仅是影响一个人,而是影响一群人。软件开发是一份很潮的工作,会随着历史的潮头不断奔流不息,只有屹立潮头的人才不会被淘汰。逆水行舟,不进则退,多少比你差的人比你还几倍的努力。如果你总是止步不前,拒绝新的技术,你还期望公司给你加薪,你还指望...原创 2019-09-08 16:19:41 · 1258 阅读 · 0 评论