并发编程
完美缺陷
书到用时方恨少事非经过不知难
展开
-
并发编程(一)可见性、原子性、有序性 线程生命周期 最佳线程数
本文讲的并发编程,并非指分布式技术中的高并发,采用水平扩展或者垂直拆分实现,将并发流量分到不同的物理服务器上。而是将服务器的服务性能最大化,提升cpu的利用率,从而加快响应速度和增大吞吐量,主要技术包括多线程。并发编程,绕不开的三个核心问题:分工、同步、互斥。分工,指的是如何高效地拆解任务并分配给各个线程;同步,指的是线程之间如何协作;互斥,则是保证同一时刻只允许一个线程访问共享资源;并...原创 2019-07-05 17:37:33 · 155 阅读 · 0 评论 -
并发编程(二)java.util.concurrent 并发容器类 Lock锁 原子类
本文自来我的公众号:https://mp.weixin.qq.com/s/JWoN10ydbVJKET_Xf8NagA下面来了解下Doug Lea老大爷的sdk并发包java.util.concurrent,了解这些常用的实用工具类后可以加深我们对并发编程的印象。SDK concurrent并发包图下面分3块,讲解其中的某些工具类,以及这些类的产生过程。这里并...原创 2019-07-05 17:42:20 · 1187 阅读 · 0 评论 -
并发编程(三)实战篇 线程池优化 CountDownLatch线程等待 CyclicBarrier线程同步 CompletionService 并行任务
本文来自我的微信公众号 :https://mp.weixin.qq.com/s/Ldq-GsaAMLbHZ6enhwaB7A系统开发中,可能会有这么一系列的操作,来处理数据的重复或者不对称,流程如下:while(条件) {//查询AaList = getAList();//查询BbList = getBList();...原创 2019-07-05 17:43:45 · 742 阅读 · 0 评论 -
并发编程(四)多线程设计模式
1.Single Threaded Execution Pattern[同一时刻只允许一个线程操作] 比喻:三个挑水的和尚,只能同一时间一个人过桥,不然都掉河里喂鱼了。 总结:在多个线程同时要访问的方法上加上synchronized关键字。2.Immutable Pattern[变量赋值一次后只能读取,不能改变。利用不变性解决并发问题] 比喻:一...转载 2019-07-05 17:53:38 · 179 阅读 · 0 评论