多线程
文章平均质量分 95
不会java_
这个作者很懒,什么都没留下…
展开
-
五、架构师-高并发与多线程-ThreadLocal java的四种引用类型 强软弱虚
从JDK1.2版本开始,把对象的引用分为四种级别,从而使程序能更加灵活的控制对象的生命周期。java的引用有强软弱虚四种类型,其中弱引用类型和ThreadLocal密切相关。ThreadLocal:线程本地变变量。以下会对这几个概念原理和使用场景进行分析。 强引用 强引用类型是普通的引用,是最常用的。比如:Object o = new Object()中引用o就是强引用类型。当一个对象具有强引用的时候,GC是不会对其回收的,就算内存不够用,宁可抛出OutOfMemoryError错误也不会回收它。只有这个这原创 2021-01-21 18:17:02 · 184 阅读 · 0 评论 -
四、架构师-高并发与多线程-volatile关键字
https://blog.csdn.net/u012723673/article/details/80682208?ops_request_misc=%25257B%252522request%25255Fid%252522%25253A%252522161037932016780269883855%252522%25252C%252522scm%252522%25253A%25252220140713.130102334.pc%25255Fall.%252522%25257D&request_id原创 2021-01-13 23:58:20 · 195 阅读 · 1 评论 -
三、架构师-高并发与多线程-synchronized、各种锁
synchronized应用 synchronized有三种方式来加锁,分别是:方法锁,对象锁synchronized(this),类锁synchronized(Demo.Class)。其中在方法锁层面可以有如下3种方式: 修饰实例方法,作用于当前实例加锁,进入同步代码前要获得当前实例的锁 静态方法,作用于当前类对象加锁,进入同步代码前要获得当前类对象的锁 修饰代码块,指定加锁对象,对给定对象加锁,进入同步代码库前要获得给定对象的锁。 synchronized括号后面的对象: synchronized扩号原创 2021-01-11 23:10:19 · 169 阅读 · 0 评论 -
二、架构师-高并发与多线程-java对象内存布局
首先以一个问题引出这次的内容:Object o = new Obeject()在内存中占了多少个字节? 要回答这个问题就要首先清楚对象在内存中的内存布局。 对象内存布局 根据java虚拟机规范里面的描述:java对象分为三部分:对象头(Object Header) = mark word + class point(对象的引用),实例数据(instance data,成员变量),对齐填充(padding)。如图: 数组与对象类似,只是对象头部分多了数组长度Length的存储长度为4字节。 测试代码: 工原创 2021-01-10 21:50:04 · 212 阅读 · 5 评论 -
一、架构师-高并发与多线程-CAS和Unsafe
CAS原创 2021-01-08 00:08:36 · 117 阅读 · 0 评论