图解多线程设计模式pdf_多线程设计模式

多线程开发可以更好的发挥多核cpu性能,常用的多线程设计模式有:Future、Master-Worker、Guard Susperionsion、不变、生产者-消费者 模式;jdk除了定义了若干并发的数据结构,也内置了多线程框架和各种线程池;    锁(分为内部锁、重入锁、读写锁)、ThreadLocal、信号量等在并发控制中发挥着巨大的作用。

多线程设计模式:

1.Single Threaded Execution Pattern

[同一时刻只允许一个线程操作]

比喻:三个挑水的和尚,只能同一时间一个人过桥,不然都掉河里喂鱼了。

总结:在多个线程同时要访问的方法上加上synchronized关键字。

2.Immutable Pattern

[变量赋值一次后只能读取,不能改变。]   比喻:一夫多妻制,多个妻子共享一个丈夫。一旦赋值,任何一个妻子不能更改共享的 husband为其它人。

总结:将多线程共享的变量用final关键字修饰。

3.Guarded Suspension Pattern

[要等到我准备好哦,没准备好就在门口等着,准备好了再叫你。]   比喻:

GG:小伙子去MM家,敲门...

MM:我在换衣服,稍等。

GG:等待 【调用wait()方法挂起自己的线程】

MM:换好了,进来吧 【调用notify()或着notifyAll()方法通知GG】

总结:判断某个条件是否为真,如果条件成立则继续执行一步,如果条件不成立用wait()方法挂

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值