多线程
多线程
Arthur_____
这个作者很懒,什么都没留下…
展开
-
单例模式
文章目录@[toc]单例模式介绍实现方法1、饿汉模式特点说明代码2、懒汉模式,线程不安全特点代码3、懒汉模式,线程安全特点代码4、双重校验锁(DCL,即 double-checked locking)特点代码详细分析5、登记式/静态内部类特点说明代码6、枚举说明代码 单例模式 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这原创 2020-05-15 12:28:44 · 688 阅读 · 0 评论 -
Java中锁的分类
1、公平锁/非公平锁 公平锁是指多个线程按照申请锁的顺序来获取锁; 非公平锁是指多个线程获取锁的顺序并不是按照申请锁的顺序(直接上来就抢),有可能后申请的线程比先申请的线程优先获取锁; 非公平锁可能会造成优先级反转或者进程饥饿现象; 非公平锁的吞吐量更大; 进程饥饿(Starvation): 指当等待时间给进程推进和响应带来明显影响称为进程饥饿。 吞吐量: 单位时间内成功地传送数据的数量...原创 2020-04-20 20:12:02 · 315 阅读 · 0 评论 -
volatile修饰符---内存可见性+禁止重排
~本文小结: volatile是一个能保证变量的内存可见性,且禁止重排的修饰符; volatile通过设立4个内存屏障避免处理器的重排序; volatile可以作为一个锁使用(用于多线程同步); ====================================================================================================...原创 2020-04-13 15:46:57 · 207 阅读 · 0 评论 -
重排序与happens-before介绍
~本文小结: 重排序能减少CPU流水线处理的中断,提高性能; 重排序分为三类:编译器层面,指令层面和内存层面; 顺序一致性模型指天然“同步且有原子性”的模型,其执行顺序为代码顺序; JMM保证正确同步的程序符合顺序一致性模型(但可以有影响结果的重排); A happens-before B == A先于B执行,且A的操作对B可见; 变量加了volatile修饰后,保证了代码中,按顺序对变量的写h...原创 2020-04-13 15:13:49 · 214 阅读 · 0 评论 -
Java运行时内存区域&Java内存模型(JMM)
介绍Java内存模型的抽象结构以及Java中内存不可见问题出现的原因原创 2020-04-11 21:54:01 · 242 阅读 · 0 评论