
java
文章平均质量分 94
StarBlues丶
这个作者很懒,什么都没留下…
展开
-
java volatile 原理
一、介绍volatile 是轻量级的 synchrocized,, 它再多处理器开发中保证了共享变量“可见性”。可见性:当一个线程修改一个共享变量时,另一个线程能够读到这个修改的值。voatile 修饰的变量 比 synchrocized 成本更低. 它不会引起线程的上下文切换和调度。二、volatile 的定义和原理如果一个字段呗声明成volatile,java线程内存模型确保所有...原创 2018-11-16 15:20:02 · 178 阅读 · 0 评论 -
synchronized 的实现原理
一、java对象中的锁的分类对于普通同步方法,锁是当前实例对象。对于静态(static修饰的)同步方法,锁是当前类的Class对象。对于同步方法块,锁是Synchonized 括号里配置的对象。 二、方法同步和代码块同步当一个线程访问同步代码块时,它首先必须得到锁,退出或者抛出异常时必须释放锁。而它的锁信息就是在java对象头中存储。 synchonized...原创 2018-11-16 16:48:25 · 170 阅读 · 0 评论 -
synchronized 与 monitor 的理解
Mark Word 参考表假设存在三个线程:线程A(线程编号为 A)、线程B(线程编号为 B)、线程C(线程编号为 C)1、线程A首次访问同步块时 线程A进入synchronized 同步块时。线程A会通过CAS设置Mark Word的线程ID为自己的ID,如果成功, 则获取锁。 Mark Word 为: A|Epoch|age|1|01 当前为偏向锁。2、线程A再次访...原创 2019-03-12 18:19:57 · 2029 阅读 · 1 评论 -
java 线程的生命周期
一、生命周期① 新建状态(New Thread)在Java语言中使用new 操作符创建一个线程后,该线程仅仅是一个空对象。它具备类线程的一些特征,但此时系统没有为其分配资源,这时的线程处于创建状态。线程处于创建状态时,可通过Thread类的方法来设置各种属性,如线程的优先级(setPriority)、线程名(setName)和线程的类型(setDaemon)等。② 就绪状态(Run...翻译 2019-03-12 18:25:44 · 320 阅读 · 3 评论 -
Shiro 多realm只抛AuthenticationException异常的解决方案
多realm认证源码protected AuthenticationInfo doMultiRealmAuthentication(Collection<Realm> realms, AuthenticationToken token) { AuthenticationStrategy strategy = getAuthenticationStrategy();...原创 2019-06-06 16:38:35 · 3970 阅读 · 1 评论 -
springboot插件式开发框架
springboot插件式开发框架介绍该框架主要是集成于springboot项目,用于开发插件式应用的集成框架。核心功能配置式插拔于springboot项目。在springboot上可以插件式开发, 扩展性极强, 可以针对不同项目开发不同插件, 进行不同部署。在插件应用模块上可以任意使用spring注解式进行依赖注入、可以开发controller接口、也可以遵循主程序提供的插件接口开...原创 2019-06-14 14:43:06 · 25433 阅读 · 11 评论