- 博客(4)
- 收藏
- 关注
原创 java 无锁实现原理CAS解析
以一段取款余额引出问题账户余额提取问题public interface Account { public static void main(String[] args) { // 不安全 无锁 Account accountUnsafe = new AccountUnsafe(10000); Account.demo(accountUnsafe); } // 获取余额 Integer getBalanc
2020-05-25 16:52:47 304
原创 java线程安全的单例模式分析
本文针对于单例模式中对象创建中的线程安全问题。主要以懒汉式,饿汉式,静态内部类,枚举类分析在调用时创建对象的线程安全问题。1.饿汉式类加载会导致该单实例对象被创建 // 问题1:为什么加 final // 问题2:如果实现了序列化接口, 还要做什么来防止反序列化破坏单例public final class HungrySingleton implements Serializable { // 问题3:为什么设置为私有? 是否能防止反射创建新的实例? private
2020-05-21 21:13:12 190
原创 java volatile关键字内存原理
内存屏障(Memory Barrier)1.可见性写屏障(Sfence)保证该屏障之前的,对共享变量改动都同步到主内存中去读屏障(Ifence)保证该屏障之后的,对共享变量读取加载的为主内存中最新数据2.有序性写屏障在指令重排序时,不会将写屏障之前的代码排到屏障之后读屏障在指令重排序时,不会将读屏障之后的代码排到屏障之前volatile原理volatile底层原理基于内存屏障对volatile变量写指令会在之后加入写屏障对volatile变量读指令会在之前加入读屏障如何保
2020-05-19 14:15:51 322
原创 润乾报表在Tomcat服务上的部署步骤
润乾报表在Tomcat服务上的部署1.在润乾报表设计器安装目录(…\report5\web\webapps)下找到demo文件夹;(这里使用的是润乾v5设计器)2.将步骤1.中的demo文件夹放到tomcat的webapps下(此处我将demo文件夹名重命名为了reportserver) 3.配置数据库连接池(此处选用JNDI的连接方式) 1)确定报表中数据源的名称(此处数据源
2017-09-13 11:59:33 3718 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人