多线程
qq_23323321
这个作者很懒,什么都没留下…
展开
-
图解java多线程设计模式学习第三章Guarded Suspension
Guarded是被守护的意思,Suspension表示等待。如果执行现在的处理会造成问题,就让执行处理的线程进行等待,这就是Guarded Suspension模式。举一个例子:客户端不断的发送请求,服务端不停地接受请求,并且服务端处理请求的顺序是FIFO,先进来的先处理,没有请求则等待。package GuardeSuspension;public class Request { priv...原创 2018-06-17 13:23:25 · 185 阅读 · 0 评论 -
图解java多线程设计模式学习第四章Balking模式
所谓Balking,不适合执行这个操作,或者没必要执行这个操作,就停止处理,直接返回。示例程序:程序将定期将当前数据内容写入到文件中,当数据内容被写入时,会完全覆盖上次写入的内容,只有最新的内容才会被保存。另外,当写入的内容与上次写入的内容完全相同时,再向文件写入就显得多余了,所以就不再执行写入操作。也就是说,该程序以"数据内容存在不同"作为守护条件,如果数据内容相同,则不执行写入操作,直接返回(...原创 2018-06-17 13:54:11 · 586 阅读 · 0 评论 -
图解java多线程设计模式学习第五章Producer-Consumer模式
生产者消费者模式,生产者安全地将数据交给消费者。虽然仅是这样看似简单的操作,但当生产者和消费者以不同的线程运行时,两者之间的处理速度差异便会引起问题。例如,消费者想要获取数据,可数据还没有生成,或者生产者想要交付数据,而消费者的状态还无法接收数据等。一般来说,在该模式中,生产者和消费者都有多个,当然生产者和消费者有时也会只有一个。有3位糕点师制作蛋糕并将其放到桌子上,然后有三个人来吃这些蛋糕。糕点...原创 2018-06-17 22:23:25 · 251 阅读 · 0 评论 -
图解java多线程设计模式学习第六章Read-Write Lock模式
学生们正在一起看老师在黑板上写的板书。这时,老师想插掉板书,再写新的内容。而学生们说道:“”老师,我们还没看完了,请先不要摖掉“”。于是,老师会等待大家都看完。当线程“”读取“”实例的状态时,实例的状态不会发生变化。实例的状态仅在线程执行“”写入“”操作时才会发生变化。从实例的状态变化这个观点来看,“”读取“”和“”写入“”有着本质的区别。在...原创 2018-06-18 00:53:45 · 177 阅读 · 0 评论 -
图解java多线程设计模式学习第七章Thread-Per-Message模式
上司把文件递给下属:“能帮我传真一下这个文件吗”?妻子告诉丈夫:“”老公,帮忙倒一下垃圾“”。像这样将工作委托给其他人的情况很常见。这个人把工作拜托给别人之后,就可以返回继续做自己的工作。Thread-Per-Message:每个消息一个线程的意思。所谓Per ,就是“每”的意思,Message在这里可以理解为“命令” 或“请求”。为每个命令或请求新分配一个线程,由这个线程来执行处理。在Threa...原创 2018-06-19 22:35:52 · 193 阅读 · 0 评论 -
图解java多线程设计模式学习第九章Future模式
假设我们去蛋糕店买蛋糕。下单后,店员一边递给我们提货单,一边说“请您傍晚再来取蛋糕”。到了傍晚,我们就拿着提货单取蛋糕。这时,店员会先和我们说“您的蛋糕已经做好了”。然后将蛋糕递给了我们。Future的意思是未来,期货。假设有一个方法需要花费很长时间才能获取运行结果,那么,与其一直等待结果,不如先拿一张“提货单”。获取提货单并不耗费时间。这里的“提货单”我们就称为Future角色。获取Future...原创 2018-06-19 23:17:51 · 186 阅读 · 0 评论