# 记录自己学习《图解Java多线程设计模式》这本书的全部过程
本书上传的所有代码都是可以运行的,在此附上本书源码地址: [http://www.ituring.com.cn/book/1812](http://www.ituring.com.cn/book/1812)<br/>
在此向本书作者和译者表示感谢
## 运行环境 ##
Eclipse版本:Oxygen.2 Release (4.7.2)<br/>
JDK版本:jdk1.7.0_79
## 代码结构 ##
![](https://i.imgur.com/dzh62mX.png)
<pre>
src\com\gdp
+---activeObject---------------------------主动对象模式
+---balking--------------------------------停止返回模式
+---future---------------------------------等待返回模式
+---builder--------------------------------建造者模式
+---guardedSuspension----------------------保护性暂挂模式
+---immutable------------------------------不可变模式
+---introduction1--------------------------主动对象模式
+---producerConsumer-----------------------生产者消费者模式
+---readWriteLock--------------------------读取端复数锁模式
+---singleThreadedExecution----------------临界区模式
+---threadPerMessage-----------------------每个消息一个线程模式
+---threadSpecificStorage------------------线程独有的存储库模式
+---twoPhaseTermination--------------------分两阶段终止模式
+---workerThread---------------------------线程池模式
images-------------------------------------运行结果截图
static-------------------------------------程序中需要用到的静态资源(程序中已经写好读取路径)
</pre>
## 运行结果 ##
### 第一章-Single Threaded Execution(临界区)模式 ###
![](https://i.imgur.com/345SuR8.png)
### 第二章-Immutable(不可变)模式 ###
![](https://i.imgur.com/Et3BXoE.png)
### 第三章-Guarded Suspension(保护性暂挂)模式 ###
![](https://i.imgur.com/E5o1fhI.png)
### 第四章-Blaking(停止返回)模式 ###
![](https://i.imgur.com/h9VnXtP.png)
### 第五章-Producer Consumer(生产者消费者)模式 ###
![](https://i.imgur.com/L3lWEnA.png)
### 第六章-Read-Write Lock(读取端复数锁)模式 ###
![](https://i.imgur.com/Hgk8yoH.png)
### 第七章-Thread-Per-Message(每个消息一个线程)模式 ###
![](https://i.imgur.com/J2BSzEU.png)
### 第八章-Worker Thread(线程池)模式 ###
![](https://i.imgur.com/KxL8W1l.png)
### 第九章-Future(等待返回)模式 ###
![](https://i.imgur.com/S44YhDW.png)
### 第十章-Two-Phase Termination(分两阶段终止)模式 ###
![](https://i.imgur.com/16erZ8s.png)
### 第十一章-Thread-Specific Storage(线程独有的存储库)模式 ###
![](https://i.imgur.com/6rPq7hz.png)
### 第十二章-Active Object(主动对象)模式 ###
![](https://i.imgur.com/ze9rxCG.png)
## 总结 ##
1. Single Threaded Execution模式:对临界区的代码进行多线程保护,用synchronized关键字来保护临界区。
2. Immutable模式:该模式不需要使用synchronized进行保护,能够提高性能。典型代表是String类。
3. Guarded Suspension模式:多线程版本的if,用守护条件对线程的执行目标处理进行保护。
4. Blaking模式:对象本身拥有状态,如果符合自身状态,就执行处理,否则便不会执行。
5. Producer Consumer模式:将数据放入消息队列中,进行数据处理,在Channel中执行互斥处理。
6. Read-Write Lock模式:将读写分离,并互斥处理读写。
7. Thread-Per-Message模式:这个也是代理模式的一种,委托端和执行端是不同的线程,可以进行消息的异步发送。
8. Worker Thread模式:这个模式也被称作为背景模式,保存多个工人线程的场所。
9. Future模式:使用该模式,可以在不用降低响应性的前提下获取处理结果。
10. Two-Phase Termination模式:优雅地结束线程,采用interrupt进行线程的终止。
11. Thread-Specific Storage模式:线程之前的数据不会共享,每个线程都存有自己的上下文。
12. Active Object模式:接收来自外部的异步请求,能够自由的调度请求,可以单线程执行实际的处理,可以返回执行结果,并拥有独立的线程。
## 心得 ##
1. 通过学习多线程模式,加深了对多线程编程的了解。
2. 最后一个模式Active Object很像Kafka的消息队列模式,该模式是多种模式的组合,里面包括了生产者消费者模式,等待返回模式,线程池模式,存储库模式。
3. Java的多线程编程的库非常强大,本书中介绍的还只是Java5的。现如今的Java8/9已经包括了很大的功能库。以下链接是JDK1.7.0_79版本并发包的源码分析:[https://www.cnblogs.com/yulinfeng/category/998911.html](https://www.cnblogs.com/yulinfeng/category/998911.html)
免责声明:
1.本资源仅供学习和交流使用,不保证其准确性、完整性、及时性或适用性。
2.本资源仅包含一般信息,不构成专业建议。在使用本资源时,请务必自行研究并谨慎决策。
3.我已尽力确保本资源的正确性和合法性,但不对其准确性、完整性和及时性做出保证。
4.本资源不应用于商业用途。
5.在使用本资源的过程中,用户应自行承担所有风险和责任,并遵守相关法律法规。
6.对于因使用本资源而产生的任何损失或损害,我概不负责。
请确保在使用本资源时仔细阅读并遵守以上免责声明。如果您有任何疑问或需要进一步帮助,请联系我。
资源最后修改时间:2024-11-14 22:04:00
121946092844705
7ef8e7d4-9c8b-4803-803e-e236011a6a90
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
图解Java多线程设计模式.zip (363个子文件)
.classpath 277B
.gitignore 6B
hyuki.html 36KB
google.html 3KB
baidu.html 2KB
MyFrame.java 2KB
MyFrame.java 2KB
ActiveObjectImpl.java 2KB
Main.java 2KB
Main.java 1KB
MyTask.java 1KB
MakerClientThread.java 1KB
MakerClientThread.java 1KB
AddClientThread.java 1KB
Channel.java 1KB
Data.java 1KB
HanoiThread.java 1KB
ActiveObjectImpl.java 1KB
Channel.java 1KB
SyncContentImpl.java 1KB
ProducerThread.java 1KB
Table.java 1KB
Table.java 1KB
Database.java 1KB
Service.java 1KB
Channel.java 1KB
Main.java 1KB
CountupThread.java 1KB
MyFrame.java 1KB
Data.java 1KB
Log.java 1KB
ActivationQueue.java 1018B
Main.java 1018B
Servant.java 1016B
ActivationQueue.java 1013B
DisplayClientThread.java 1011B
ConsumerThread.java 1011B
Main.java 1010B
DisplayClientThread.java 1007B
Data.java 975B
SearcherImpl.java 939B
MiniServer.java 931B
Data.java 914B
RequestQueue.java 903B
Table.java 894B
Table.java 891B
Proxy.java 881B
Main.java 881B
ReadWriteLock.java 864B
EaterThread.java 859B
Host.java 845B
Main.java 842B
ClientThread.java 842B
Data.java 840B
MyTask.java 837B
Main.java 834B
RequestQueue.java 834B
ClientThread.java 833B
TalkThread.java 832B
MakerClientThread.java 828B
TalkThread.java 824B
TalkThread.java 824B
AddClientThread.java 820B
MakerClientThread.java 813B
MutablePerson.java 813B
Main.java 804B
RequestQueue.java 798B
Blackhole.java 789B
Line.java 784B
Host.java 784B
CountupThread.java 782B
Gate.java 762B
MyFrame.java 759B
ClientThread.java 741B
ClientThread.java 741B
ClientThread.java 738B
AssignThread.java 734B
ImmutablePerson.java 730B
Main.java 724B
ClientThread.java 721B
WriterThread.java 709B
WriterThread.java 706B
ServerThread.java 705B
ServerThread.java 705B
ServerThread.java 702B
MakerThread.java 692B
MakerThread.java 691B
MakerThread.java 691B
MakerThread.java 691B
MakerThread.java 688B
Main.java 682B
ServerThread.java 680B
Proxy.java 675B
Main.java 673B
Main.java 670B
Main.java 669B
Host.java 653B
Host.java 653B
Gate.java 650B
RetrieveThread.java 649B
共 363 条
- 1
- 2
- 3
- 4
资源评论
苹果酱0567
- 粉丝: 1550
- 资源: 854
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- json的合法基色来自红包东i请各位
- 项目采用YOLO V4算法模型进行目标检测,使用Deep SORT目标跟踪算法 .zip
- 针对实时视频流和静态图像实现的对象检测和跟踪算法 .zip
- 部署 yolox 算法使用 deepstream.zip
- 基于webmagic、springboot和mybatis的MagicToe Java爬虫设计源码
- 通过实时流协议 (RTSP) 使用 Yolo、OpenCV 和 Python 进行深度学习的对象检测.zip
- 基于Python和HTML的tb商品列表查询分析设计源码
- 基于国民技术RT-THREAD的MULTInstrument多功能电子测量仪器设计源码
- 基于Java技术的网络报修平台后端设计源码
- 基于Python的美食杰中华菜系数据挖掘与分析设计源码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功