随笔分类 -  Java 设计模式

摘要:Future设计模式说明 Future 模式有点类似于商品订单。比如在网购时,当看重某一件商品事,就可以提交 订单,当订单处理完成后,在家里等待商品送货上门即可。或者说更形象的我们发送 Ajax 请求的时候,页面是异步的进行后台处理,用户无须一直等待请求的结果,可以继续浏览或 操作其他内容。 代码实 阅读全文
posted @ 2021-01-13 12:41 行者老夫 阅读(125) 评论(0) 推荐(0)
摘要:JDK提供的大多数内置锁都是可重入的,也就是 说,如果某个线程试图获取一个已经由它自己持有的锁时,那么这个请求会立 刻成功,并且会将这个锁的计数值加1,而当线程退出同步代码块时,计数器 将会递减,当计数值等于0时,锁释放。如果没有可重入锁的支持,在第二次 企图获得锁时将会进入死锁状态。 现实中,我们 阅读全文
posted @ 2020-04-04 16:11 行者老夫 阅读(508) 评论(0) 推荐(0)
摘要:使用信号灯法实现生产消费者模式需要借助标志位。 下面以演员表演,观众观看电视为列,写一个demo 同一资源 电视: //同一资源 电视 class Tv { String voice; // 信号灯 // T 表示演员表演 观众等待 // F 表示观众观看 演员等待 boolean flag = t 阅读全文
posted @ 2020-04-02 23:35 行者老夫 阅读(347) 评论(2) 推荐(0)
摘要:多线程通过管程法实现生产消费者模式需要借助中间容器作为换从区,还包括生产者、消费者。下面以蒸馒头为列,写一个demo。 中间容器: 为了防止数据错乱,还需要给生产和消费方法加锁 并且生产者在容器写满的情况下需要等待消费者消费, 同理消费者在容器为空的情况下需要等待生产者生产 //缓冲区 class 阅读全文
posted @ 2020-04-01 22:25 行者老夫 阅读(305) 评论(0) 推荐(0)
摘要:我们使用 java 多线程时,都需要通过线程代理对象来启动线程,常见的写法: new Thread(target).start(); 这在设计模式中叫静态代理模式,静态代理模式组成; 1、公共接口 2、真实角色 3、代理角色 以结婚为例,结婚要找婚庆公司,结婚前和结婚后的事情交给婚庆公司处理,你只要 阅读全文
posted @ 2020-03-30 01:38 行者老夫 阅读(230) 评论(0) 推荐(0)
摘要:在java IO 流中我们经常看到这样的写法: ObjectOutputStream oos = new ObjectOutputStream( new BufferedOutputStream(new FileOutputStream("obj.ser"))); 这其实就是IO流使用装饰设计模式, 阅读全文
posted @ 2020-03-29 16:36 行者老夫 阅读(446) 评论(0) 推荐(0)