![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
谢同学谢童鞋
笃定一件事,耐心长久的坚持
展开
-
Single Thread Execution设计模式
Single Thread Execution设计模式:同一时刻只允许一个线程访问共享资源。 synchronized关键字虽然可以保证single Thread Execution,但是使用不当可能会导致死锁。 死锁场景示例:吃面问题,A手持刀等待B放下叉,B手持叉等待A放下刀。 public class Tableware { //餐具名称 private final ...原创 2019-01-29 10:39:28 · 185 阅读 · 0 评论 -
7种单例模式设计
阅读《Java高并发编程详解》后的笔记。 1、饿汉式: /** * 饿汉式 * 若一个类的成员都是比较重的资源,这种方式不合适 */ //不允许被继承 public final class Singleton { //定义实例变量的时候直接初始化 //instance被ClassLoader 加载后很长一段时间才被使用,它所开辟的堆内存会驻留更久 privat...原创 2019-01-04 11:38:47 · 796 阅读 · 1 评论 -
不可变对象设计模式
线程安全主要目的是在受控的并发访问中防止数据发生变化。除了使用synchronized关键字同步对资源的写操作之外,还可以在线程之间不共享资源状态,甚至将资源的状态设置为不可变。 java.lang.String的每一个方法都没有同步修饰,但是在多线程访问的情况下是线程安全的,Java8中通过Stream修饰的ArrayList在函数式方法并行访问的情况下也是线程安全的。 所谓“不可变对象”是...原创 2019-01-30 11:08:39 · 263 阅读 · 0 评论