并发编程总结(一):同步和锁的本质

1.线程通信1.1.忙等待的互斥(自旋等待)1.1.1.屏蔽中断1.1.2.基于硬件指令1.1.2.1.TSL(互斥量)1.1.2.2.CAS指令1.2.等待-通知实现互斥1.2.1.信号量(PV原语-互斥量)1.2.2.基于等待-通知的互斥量1.3.管程2.Java线程采用的线程模型2.1.常见的

并发编程总结(二):JUC下的锁

1.JUC的包结构2.AbstractQueueSynchronizer2.1.AQS原理2.2.AQS的数据结构2.3.LockSupport.park(Object blocker)和LockSupport.unpark(Thread thread)2.3.AQS中的一般处理流程2.3.1.pu

并发编程(二十七):并发设计模式之优雅的结束线程

1.两阶段终止模式1.1.第一阶段1.2.第二阶段2.如何优雅的终止线程池2.1.shutdown()2.2.shutdownNow()优雅的结束线程是指线程T1中去结束线程T2,并且让T2有机会处理结束线程的流程,那么该如何实现呢?1.两阶段终止模式两阶段的含义:第一阶段:向线程发送终止指令第二阶

并发编程(二十六):并发设计模式之分工

1.Thread-Per-Message模式2.Worker Thread模式2.1.正确的创建线程池2.2.避免将有依赖的任务交给同一个线程池去执行,因为这样可能会产生死锁:3.生产者-消费者模式并发编程领域的三个核心问题:分工、同步和互斥。而解决并发编程问题的首要问题就是解决宏观的分工问题而解决

并发编程(二十四):并发设计模式之线程本地存储:ThreadLocal

1.ThreadLocal的工作原理2.ThreadLocal的内存泄漏3.InheritableThreadLocal 与继承性Java 语言提供的线程本地存储(ThreadLocal)就能够做到避免共享1.ThreadLocal的工作原理一般来讲,我们的设计思路可能是ThreadLocal会持有

并发编程(二十二):并发设计模式之Immutability模式

1.不变性(Immutability)模式:2.如何快速实现具有不变性的类3.使用Immutability的注意事项3.1.对象的所有属性都是final的,并不能保证不可变性3.2.正确的发布不可变对象1.不变性(Immutability)模式:简单来说,就是对象一旦被创建以后,状态就不再发生变化。

并发编程(二十一):Fork-Join

1.分治任务模型2.Fork/Join的使用Java并发包提供了一种叫做Fork/Join的并行计算框架,用来支持分治这种模型。分治思想在很多领域都有广泛的应用,例如算法领域有分治算法(归并排序、快速排序都属于分治算法,二分法查找也是一种分治算法);大数据领域知名的计算框架 MapReduce 背后

并发编程(十九):CompletableFuture

1.CompletableFuture的核心优势2.CompletabelFuture的使用2.1.对象的创建2.2.CompletionStage接口2.2.1.描述串行关系2.2.2. 描述 AND 汇聚关系2.2.3. 描述 OR 汇聚关系2.2.4. 异常处理Java 在 1.8 版本提供了

并发编程(十八):Future

1.ThreadPoolExecutor 获取执行结果1.1.Submit2.FutureTask当使用线程池时,我们该如何获取结果呢?1.ThreadPoolExecutor 获取执行结果ThreadPoolExecutor 提供的 3 个 submit() 方法和 1 个 FutureTask
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×