![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
文章平均质量分 55
多线程
HuH...
这个作者很懒,什么都没留下…
展开
-
java虚拟机之虚拟机栈
文章目录一、虚拟机栈描述栈的存储单位栈帧栈帧内容局部变量表slot操作数栈(Operand Stack)字节码demo栈顶缓存技术动态链接(指向运行时常量池的方法引用)静态链接动态链接虚方法表方法返回地址 一、虚拟机栈 包含java方法(局部变量表,操作数栈,动态链接,方法出口) 描述 Java的指令都是根据栈来设计的,优点是跨平台,指令集小,编译容易实现,缺点是 性能下降,实现相同的功能需要更多的指令 每个线程在创建时都会创建一个虚拟机栈,其内部保存一个个的栈帧,是线程私有的 一个栈帧就对原创 2020-10-25 09:32:59 · 115 阅读 · 1 评论 -
简单java-多线程
Process与Thread 进程 线程 作为资源分配的单位 调度和执行的单位 每个进程都有独立的代码和数据空间 同一线程共享代码和数据空间,每个线程有独立 ...原创 2019-10-30 17:37:18 · 110 阅读 · 0 评论 -
juc相关
JUC就是java.util.concurrent包,俗称java并发包 简单来说,这个学习 方法就三个点,是什么?为什么?怎么办? JUC下面有两个子包,分别是atomic和locks,atomic即原子类, 经常用到的类AtomicBoolean、AtomicInteger、AtomicLong、AtomicReference、AtomicStampedReference等, 打开源码包我们看到其实这些方法是调用Unsafe类提供comp原创 2020-08-07 19:13:31 · 91 阅读 · 0 评论 -
多线程2
CAS(无锁优化,自旋) 全称:Compare And Set java类库里Atomic 开头的类都是使用CAS来保证线程安全的,没有加锁 cas(V,Expected,NewValue) cas是方法 如想将0改为1 那么 V是需要改的值:0 Expected:期望的值:也应该为0 NewValue 是新的值:原创 2020-08-07 19:13:18 · 106 阅读 · 0 评论 -
ReadWriteLock
package java.util.concurrent.locks; ReadWriteLock接口 它保证: 只允许一个线程写入(其他线程既不能写入也不能读取); 没有写入时,多个线程允许同时读(提高性能)。 读的时候不能写 也就是说 读-写互斥,写-写互斥,读读不互斥 其实现类ReentrantReadWriteLock public class Counte...原创 2020-08-07 19:12:57 · 103 阅读 · 0 评论 -
Reentrantlock
使用步骤: 在成员位置创建一个实现Lock接口对象 在可能会出现安全问题的代码前调用lock接口中的方法lock获取锁 在可能会出现安全问题的代码后调用lock接口中的方法unlock释放锁 先总体描述下 ReentrantLock 的大致实现,有一个成员属性 sync,所有的方法都是调用该属性的方法。 Sync 继承 AbstractQueuedSynchronizer(简称 AQS),AQS 封装了锁和线程等待队列的基本实.原创 2020-08-07 19:12:11 · 115 阅读 · 0 评论