- 博客(4)
- 资源 (5)
- 收藏
- 关注
原创 java多线程设计模式笔记之Future Pattern
想象一个场景,你去蛋糕店买蛋糕,先下订单之后,店员给你一张提货单,叫你下午来取货,下午你来取蛋糕,如果此时蛋糕已经做好了,则拿走蛋糕,如果没有做好,则你还得再等等。相对应的程序场景,主线程要得到某些数据需要耗时操作,于是开了个子线程去生产数据,然后主线程去做别的事,等一段时间之后再去取回数据,实现了异步回调。 看代码~~首选是Data接口,表示数据:public interfac
2016-11-26 19:00:57 1025
原创 java多线程设计模式之ReadWriteLock(读写锁)
在之前的模式中,为了确保线程安全,每次读写数据只允许一个线程操作数据类对象,但是多线程同时读数据也是安全的,所以为了提升性能,是不是可以有一种模式,允许同时多线程读,但是只能一条写线程在操作数据类对象呢?答案是肯定的。现在就来介绍下读写锁模式。 Java并发包中有读写锁类ReadWriteLock,他的功能是使得当多个线程读和多个线程写同一块数据的情况下,允许多线程同时读,但是有线
2016-11-19 20:17:25 575
原创 java多线程设计模式Worker Thread(线程池)
想象一个场景,一个工厂在生产玩具,在一个车间里,有几个工人,每次生产部件准备好车间外的人就将部件放到车间的一个桌子上,工人每次做完一个玩具就从桌子上取部件。在这里,注意到,部件并不是直接交给工人的,另外一点,工人并不是做完一个部件就回家换个新人,后者在现实有点滑稽,但是在程序中却对应一个典型的线程使用方法:线程池。所谓线程池,就是对线程的复用,当线程执行完任务之后就继续取其他任务执行,而不是销
2016-11-13 13:32:24 6498 1
原创 java多线程设计模式之消费者生产者模式
所谓生产者,就是产生数据的线程,消费者,就是使用数据的线程。两个线程的速度差将成为最大的问题,而该模式就是缓冲两者的速度差。一般来说,生产者和消费者会有多个。以下是典型的例子程序。假设一个场景,有一个桌子Table,有若干个厨师MakerThread往桌子上按顺序放上蛋糕,有若干个顾客EaterThread按顺序吃蛋糕:首先是厨师MakerThread:public class M
2016-11-06 18:35:48 937
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人