![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并发
Duncan_dsf
这个作者很懒,什么都没留下…
展开
-
jmm与并发
JMM主内存和工作内存主内存包括:实例字段、静态字段、和构成数组对象的元素;但不包括局部变量和方法参数,因为他们是线程私有的所有变量都存储在主内存工作内存是线程使用到的变量的主内存的副本,线程对变量的操作必须在工作内存中进行内存交互操作lockunlockreadloaduseassignstorewrite操作规则:volatile ——jv...原创 2019-03-13 10:44:24 · 255 阅读 · 0 评论 -
线程安全——定义及实现
线程安全级别安全程度从强到弱:不可变 绝对线程安全 相对线程安全 线程兼容 线程对立不可变 不可变的对象一定是线程安全的(前提this引用没有逃逸)基本类型只要定义未final,就可以保证不可变如果是引用类型,需要保证对象的状态不会受对象行为影响;所以引用类型的不安全在于可能线程一判断某对象状态后,另一线程进行了改变。符合不可变要求的类型:String、Number的子类:Integ...原创 2019-03-13 10:45:26 · 474 阅读 · 0 评论 -
jvm与锁优化
锁优化自旋锁和自适应锁:共享数据的锁定短的话,挂起和恢复线程并不值得,当遇到共享数据被锁定时,先不放弃cpu执行时间,等待看看持有锁的线程释放很快释放锁;为了让线程等待,我们只需让线程执行一个忙循环(空循环,自旋),这就是自旋锁而假如锁定时间长的话,忙等待需要占用的时间浪费,因此自旋的等待时间有限度,如果自旋超过限定次数仍然没有获取锁,则需要使用传统的方式挂起线程jdk1.6默认开启自...原创 2019-03-13 10:46:20 · 154 阅读 · 0 评论