Java锁(一)AQS分析

作为一个 java 开发者,并发编程是不可或缺的,在并发的过程,Lock 是并发的关键。 本系列文章主要来讲解锁的原理和机制。在理解 J.U.C 原理以及锁机制之前,我们来介绍 J.U.C 框架最核心也是最复杂的一个基础类:java.util.concurrent.locks.AbstractQueuedSynchronizer。上面的继承体系中,AbstractQueuedSynchronizer 是 CountDownLatch/Semaphore/RenntrantReadWriteLock /Worker/ReentrantLock 的基础, ...

Java并发编程之锁

作为一个 java 开发者,并发编程是不可或缺的,在并发的过程,Lock 是并发的关键,本文主要从排它锁和共享锁的实例来讲解锁的机制。 本文主要从以下方面来讲解锁的原理及使用: AbstractQueuedSynchronizer 分析 ReentrantLock 独占锁分析 CountDownLatch 共享锁分析 ConditionObject 分析 CyclicBarrier 分析

JDK设计模式(三)建造者模式

将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。建造模式是将复杂的内部创建封装在内部,对于外部调用的人来说,只需要传入建造者和建造工具,对于内部是如何建造成成品的,调用者无需关心,其类图如下。 建造者角色Product : 产品类,由多个部件构成。 class Product { List<String> parts = new ArrayList<String>(); public void AddPart(String part) { parts.add(part); &# ...

JDK设计模式(二)工厂模式

工厂模式是我们最常用的实例化对象模式,使用工厂方法代替 new 操作的一种模式,使用工厂模式,可能多做一些工作,但会给你系统带来更大的可扩展性和尽量少的修改量。 1、简单工厂模式简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于 23 种 GOF 设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例。使用场景1、工厂类 ...

JDK设计模式(一)单例模式

单例模式确保一个类只有一个实例,并提供一个全局访问点。其类图如下所示。本文主要从饿汉式,懒汉式,懒汉式改进,来讲解单例模式。 1、饿汉式单例饿汉式单例类是在 Java 语言里实现得最为简便的单例类。在类被加载时,就会将自己实例化。 public class Singleton { private static Singleton uniqueInstance = new Singleton(); private Singleton() { // Exists only to defeat instantiatio ...

JDK中的设计模式

本文主要是归纳了 JDK 中所包含的设计模式,包括作用和其设计类图。 一、设计模式的作用 反复出现问题的解决方案 增强软件的灵活性 适应软件不断变化 二、设计模式的七大原则 开闭原则 OCP(Open Close Principle),一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。 里氏代换原则 LSP(Liskov Substitution Principle),子类可以扩展父类的功能,但不能改变父类原有的功能 依赖倒转原则 DIP(Dependence Inversion Principle),面向接口编程,依赖于抽象而不依赖于具体。 接口隔离原则 ISP(Interface ...