并发
文章平均质量分 94
linの架构梦
这个作者很懒,什么都没留下…
展开
-
Reentralock的加锁流程
reentrantlock的加锁流程非公平锁加解锁流程线程1执行如下操作:(出现竞争)CAS尝试将state由0设置为1,结果失败进入tryAcquire逻辑,再次失败进入acquireQueued逻辑- 创建Node队列创建两个 Node,其中第一个Node成为哨兵,用来占位,不关联线程在acquireQueued逻辑中,线程会进入一个死循环,两次失败过后会进入park阻塞如果自己是第二个Node节点关联的线程,那么会进行一次tryAcquire尝试如果原创 2021-02-03 16:03:43 · 535 阅读 · 1 评论 -
java线程
线程的优先级cpu采用时间片的形式调度运行的线程,当线程所分配的时间片用完之后,会发生线程调度,并等待下次分配。线程所分到的时间片多少也就决定了该线程所使用处理器资源的多少。线程优先级就是觉得线程需要多或者少分配一些处理器的资源通过成员变量priority 控制,范围 1~10,默认5。线程的优先级具有继承的特性,如果用A线程去启动B线程 ,那么B线程的优先级和A线程一致线程的分类默认情况下,java进程需要等待所有线程都运行结束,才会结束。主线程:守护线程:只要其它非守护线程原创 2021-02-03 16:00:33 · 202 阅读 · 1 评论 -
java内存模型
主内存与工作内存首先在介绍java内存模型中的主内存和工作内存之前,先介绍一下处理器的效率问题硬件的效率和一致性由于计算机的存储设备与处理器的运算速度有着几个数量级的差距,现代计算机都不得不加入一层或多层读写速度尽可能接近处理器运算速度的高速缓存,来作为内存与处理器之间的缓冲:将运算需要使用的数据复制到缓存中,让运算能快速进行,当运算结果结束后再从缓存中同步回内存中,这样处理器就无须等待缓慢的内存读写了。CPU缓存一致性从上面的描述可以看出,当多个处理器在同时运算共同的数据时,对于共享数据的一致原创 2021-02-03 15:56:36 · 64 阅读 · 0 评论 -
java共享模型
共享问题资源共享由于线程和进程的关系,在上一篇并发基础中有写到,多个线程可共享一块内存区域,并且每个线程也都有自己独立的工作空间。经典案例:从这里我们开始对自增自减进行迫害 static int counter = 0; public static void main(String[] args) throws InterruptedException { Thread t1 = new Thread(() -> { for原创 2021-02-03 15:54:56 · 216 阅读 · 0 评论