java
小贼驴
这个作者很懒,什么都没留下…
展开
-
volatile关键字及其作用 优化double check singleton
volatile关键字及其作用 概述:本文主要介绍Java语言中的volatile关键字,内容涵盖volatile的保证内存可见性、禁止指令重排等。 1 保证内存可见性1.1 基本概念 可见性是指线程之间的可见性,一个线程修改的状态对另一个线程是可见的。也就是一个线程修改的结果,另一个线程马上就能看到。1.2 实现原理 当对非volatile变量进行读写的时候,每个线程...转载 2018-10-14 23:29:24 · 435 阅读 · 0 评论 -
java 集合 数组 的深度复制
一.如果集合或数组,里面装的是:8种基本类型或者它们的包装类和String,我们使用普通的浅复制就行了使用 Arrays.copyOf() 或者 new ArrayList(list) 等方法这里不做代码演示很简单。二 如果里面装的是对象,上边的浅复制方法就习行不通了。通常用两种方法实现深复制:clone() 和 io流复制第一种:1.对象实现Cloneable 接口复写 clone(...原创 2018-11-25 20:38:37 · 1342 阅读 · 0 评论 -
Java单例模式 饿汉、懒汉的区别?
1.懒汉式public class SingleMode { private static volatile SingleMode singleMode; //构造器私有化的同时,还需防止利用发射实例化对象,所以当实例化对象时抛出异常 private SingleMode() { if (singleMode != null) { throw new RuntimeExcep...原创 2019-01-25 22:55:08 · 683 阅读 · 0 评论 -
倒计时器CountDownLatch 和 循环栅栏:CyclicBarrier
一 概念:1.在多线程协作完成业务功能时,有时候需要等待其他多个线程完成任务之后,主线程才能继续往下执行业务功能,在这种的业务场景下,通常可以使用Thread类的join方法,让主线程等待被join的线程执行完之后,主线程才能继续往下执行。当然,使用线程间消息通信机制也可以完成。其实,java并发工具类中为我们提供了类似“倒计时”这样的工具类,可以十分方便的完成所说的这种业务场景。2.为了能...原创 2019-08-02 17:24:55 · 800 阅读 · 0 评论
分享