![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图解Java多线程设计模式
Serendipity°
在校学渣一枚
展开
-
Java内存模型
文章目录Java内存模型重排序1.什么是重排序2. 示例程序(会显示出 x < y 吗)可见性1. 什么是可见性共享内存与操作synchronized1. 线程的互斥处理2. 同步处理volatile1. 同步处理final1. final字段与构建线程安全的实例2. 不要从构造函数中泄漏 thisDouble-Checked Locking模式的危险性1. 示例程序2. Initiali...原创 2019-03-26 09:49:52 · 143 阅读 · 0 评论 -
第13章-总结多线程编程的模式语言
文章目录13.1 多线程编程的模式语言13.1.1 模式与模式语言13.2 Single Threaded Execution 模式——能通过这座桥的只有一个人13.3 Immutable 模式——想破坏也破坏不了13.4 Guarded Suspension 模式——等我准备好哦13.5 Balking 模式——不需要就算了13.6 Producer-Consumer 模式——我来做,你来用13...原创 2019-03-26 09:48:30 · 212 阅读 · 0 评论 -
第12章-ActiveObject
文章目录12.1 模式简介12.3 ActiveObject模式中的角色12.3.1 Client(委托者)12.3.2 ActiveObject(主动对象)12.3.3 Proxy(代理人)12.3.4 Scheduler12.3.5 MethodRequest12.3.6 ConcreteMethodRequest12.3.7 Servant(仆人)12.3.8 ActivationQueue...原创 2019-03-26 09:47:15 · 417 阅读 · 0 评论 -
第11章-ThreadSpecificStorage
文章目录11.1 Thread-Specific Storage模式11.2 java.lang.ThreadLocal11.2.1 java.lang.ThreadLocal 就是储物间11.2.2 java.lang.ThreadLocal 与泛型11.5 Thread-Specific Storage模式中的角色11.5.1 Client(委托者)11.5.2 TSObjectProxy(线...原创 2019-03-26 09:46:48 · 217 阅读 · 0 评论 -
第10章-TwoPhaseTermination
文章目录10.1 模式简介10.3 Two-Phase Termination模式中的角色10.3.1 TerminationRequester(终止请求发出者)10.3.2 Terminator(终止者)10.4 拓展思路的要点10.4.1 不能使用Thread类的stop方法10.4.2 仅仅检查标志是不够的10.4.3 仅仅检查中断状态是不够的10.4.4 优雅地终止线程10.4.4.1 安...原创 2019-03-26 09:46:17 · 179 阅读 · 0 评论 -
第9章-Future
文章目录9.1 模式简介9.3 Future模式中的角色9.3.1 Client(请求者)9.3.2 Host9.3.3 VirtualData(虚拟数据)9.3.4 RealData(真实数据)9.3.5 Future(期货)9.3.6 类图9.4 拓展思路的要点9.4.1 吞吐量会提高吗9.4.2 异步方法调用的 “返回值”9.4.3 “准备返回值” 和 “使用返回值” 的分离9.4.4 变种...原创 2019-03-25 21:28:53 · 202 阅读 · 0 评论 -
第8章-WorkerThread
文章目录8.1 模式简介8.3 Worker Thread模式中的角色8.3.1 Client(委托者)8.3.2 Channel(通信线路)8.3.3 Worker(工人)8.3.4 Request(请求)8.3.5 类图和Timethreads图8.4 拓展思路的要点8.4.1 提高吞吐量8.4.2 容量控制8.4.2.1 Worker角色的数量8.4.2.2 Request角色的数量8.4....原创 2019-03-25 21:28:28 · 325 阅读 · 0 评论 -
第7章-ThreadPerMessage
文章目录7.1 模式简介7.3 Thread-Per-Message模式中的角色7.3.1 Client(委托人)7.3.2 Host7.3.3 Helper(助手)7.3.4 类图和Timethreads图7.4 拓展思路的要点7.4.1 提高响应性,缩短延迟时间7.4.2 适用于操作顺序没有要求时7.4.3 适用于不需要返回值时7.4.4 应用于服务器7.6 进程与线程7.6.1 线程之间共享...原创 2019-03-25 21:28:02 · 255 阅读 · 0 评论 -
第6章-ReadWriteLock
文章目录6.1 模式简介6.3 Read-Write Lock模式中的角色6.3.1 Reader(读者)6.3.2 Writer(写者)6.3.3 SharedResource(共享资源)6.3.4 ReadWriteLock(读写锁)6.3.5 类图和Timethreads图6.4 拓展思路的要点6.4.1 利用“读取”操作的线程之间不会冲突的特性来提高程序性能6.4.2 适合读取操作繁重时6...原创 2019-03-25 21:27:34 · 133 阅读 · 0 评论 -
第5章-ProducerConsumer
文章目录5.1 模式简介5.3 Producer-Consumer模式中的角色5.3.1 Data5.3.2 Producer5.3.3 Consumer5.3.4 Channel5.3.5 类图5.4 拓展思路的要点5.4.1 守护安全性的Channel角色5.4.2 不可以直接传递吗5.4.3 存在中间角色的意义5.6 理解InterruptedException异常5.6.1 可能会花费时间...原创 2019-03-25 21:26:57 · 193 阅读 · 0 评论 -
第4章-Balking
文章目录4.1 模式简介4.3 Balking模式中的角色4.3.1 GuardedObject4.3.2 类图和Timethreads图4.4 拓展思路的要点4.4.1 何时使用4.4.2 balk结果的表示方式4.6 超时4.6.1 Timeout4.6.2 wait何时终止4.6.3 synchronized和wait状态的区别 4.1 模式简介 我正坐在餐馆中,合计着吃点什么。想好之后,...原创 2019-03-25 21:26:14 · 202 阅读 · 0 评论 -
第3章-GuardedSuspension
文章目录3.1 模式简介3.3 Guarded Suspension模式中的角色3.3.1 GuardedObject(被守护的对象)3.3.2 类图和Timethreads图3.4 拓展思路的要点3.4.1 附加条件的 synchronized3.4.2 忘记改变状态与生存性3.4.3 java.util.concurrent.LinkedBlockingQueue 3.1 模式简介 当你正在...原创 2019-03-25 21:25:44 · 274 阅读 · 0 评论 -
第2章-Immutable
文章目录2.1 模式简介2.3 Immutable模式中的角色2.3.1 Immutable (不可变的)2.3.2 类图和Timethreads图2.4 拓展思路的要点2.4.1 何时使用2.4.2 成对的mutable类和immutable类2.6 延伸阅读1:final2.6.1 final的含义2.7 延伸阅读2:集合类与多线程2.7.1 非线程安全的java.util.ArrayList...原创 2019-03-25 21:25:17 · 321 阅读 · 0 评论 -
第1章-SingleThreadedExecution
文章目录1.1 模式简介1.4 Single Threaded Execution模式中的角色1.4.1 SharedResource(共享资源)1.4.2 类图和Timethreads图1.5 拓展思路的要点1.5.1 何时使用1.5.2 生存性与死锁1.8 计数信号量和Semaphore类 1.1 模式简介 有一座独木桥,非常细,每次只允许一个人经过。如果这个人还没有走到桥的另一头,则下一个...原创 2019-03-25 21:24:06 · 303 阅读 · 0 评论 -
Java线程
文章目录1.2 何谓线程1.2.1 单线程程序1.2.2. 多线程程序1.3 线程的启动1.3.1 启动线程的方法1.3.2 程序的终止1.3.3 Thread类和Runnable接口1.4 线程的暂停1.4.1 sleep方法的调用1.5 线程的互斥处理1.5.1 synchronized方法1.5.2 锁和监视1.6 线程的协作1.6.1 线程控制方法1.6.2 等待队列1.6.3 wait、...原创 2019-03-26 09:50:29 · 195 阅读 · 0 评论