摘要:1、线程池 1.1、自定义线程池 @Slf4j public class TestPool { public static void main(String[] args) { ThreadPool threadPool = new ThreadPool(1, 1000, TimeUnit.MILL
阅读全文
摘要:目录 1、进程与线程 2、并行与并发 3、应用 3.1、应用1——异步调用 3.1.1、设计 3.1.2、结论 3.2、应用2——提高效率 3.2.1、结论 1、进程与线程 进程: 程序由指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载至CPU,...
阅读全文
摘要:目录 1、创建和运行线程 1.1、方法1——直接使用Thread 1.2、方法2——使用Runnable配合Thread 1.3、方法3——FutureTask配合Thread 2、原理之Thread与Runnable的关系 3、观察多个线程同时运行 4、查看...
阅读全文
摘要:目录 1、日期转换的问题 2、不可变设计 2.1、final的使用 2.2、保护性拷贝 3、享元模式 3.1、简介 3.2、体现 3.2.1、包装类 3.2.2、String串池 3.2.3、BigDecimal BigInteger 3.3、DIY 4、fi...
阅读全文
摘要:目录 1、问题的提出 2、CAS与volatile 2.1、CAS 2.2、volatile 2.3、为什么无锁效率高? 2.4、CAS的特点 3、原子整数 4、原子引用 4.1、ABA问题及解决 4.1.1、ABA问题 4.1.2、AtomicStamped...
阅读全文
摘要:目录 1、Java内存模型 2、可见性 2.1、退不出的循环 2.2、解决方法 2.3、可见性 vs 原子性 2.3.1、设计模式——终止模式之两阶段终止模式 2.3.2、设计模式——同步模式之Balking 3、有序性 3.1、指令重排序优化 3.2、支持...
阅读全文
摘要:目录 1、共享带来的问题 1.1、临界区(Critical Section) 1.2、竞态条件(Race Condition) 2、synchronize解决方案 2.1、应用之互斥 2.2、synchronized 2.3、面向对象改进 3、方法上的sync...
阅读全文