![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并发
造梦灬烟花
这个作者很懒,什么都没留下…
展开
-
Lock源码深度解析(lock方法unlock方法、AQS)
大家好,我是wave。今天是圣诞节,我们就不聊学习了,随便在这里写点什么吧~闲聊今年的圣诞节由于我没有去公司实习,而且在家想多陪陪父母(毕竟去了北京估计一年就回来一次了),所以今天的圣诞节真的有点冷冷清清的感觉。身边的大学同学基本都去公司实习了,高中同学要么在考公研要么在考公务员。在老家目前真的连一个打球的朋友都找不出来。最后实在无聊去了一家小学培训机构辅导六年级语数英作业。。。然后发现现在小学可太难读了,作业一堆一堆的,一般5点开始做作业要8点左右结束。偶尔九点十点也是会有的。做老师就感受到了老.原创 2020-12-30 16:15:45 · 705 阅读 · 4 评论 -
全网最详细的synchronized讲解(锁升级、查看对象头标记、底层实现)
大家好,我是wave,这次来和大家详细的聊一聊Synchronized这个关键字,希望大家看完可以对synchronized关键字有一个非常全面的了解。Synchronized基本操作synchronized主要有三种使用方式:修饰实例方法: 给一个类上的方法添加synchronized关键字,这个锁会作用于这个类当前的实例对象上,进入同步代码前要获得 当前对象实例的锁public synchronized void method(){ // do something.原创 2020-12-17 20:53:54 · 620 阅读 · 0 评论 -
Thread、Runnable、Callable基本操作线程基本概念
大家好我是wave,本篇文章给大家介绍一些有关线程的基本概念与线程的一些基本操作线程与进程进程是操作系统资源分配的基本单位,而线程是处理器任务调度和执行的基本单位。还存在资源开销、包含关系、内存分配、影响关系、执行过程等区别。同一进程的线程共享本进程的地址空间和资源(堆和方法区),而进程之间的地址空间和资源相互独立。举个栗子就是我们从桌面随便打开一个应用程序,比如开启一个qq或者wegame,都算是启动了一个进程。而线程是一个比进程更小的单位,比如在qq打开多个聊天窗口与别人聊天,就是一种多.原创 2020-12-12 10:16:06 · 334 阅读 · 0 评论 -
synchronize锁升级机制总结
锁升级(膨胀)过程synchronize锁升级过程:jdk高版本之后对synchronize关键字进行了很多优化,其中一项就是锁升级,以前synchronize默认就是悲观锁,是在JVM层面上加锁的,加锁解锁的开销都比较大。所以引入了偏向锁、轻量级锁、重量级锁。那么偏向锁、轻量级锁、重量级锁又是什么偏向锁:我认为偏向锁的关键就是“偏”,偏向于第一个访问的线程。也就是说在无竞争的环境下,有一个线程访问的同步代码块,那么这个锁就会偏向这个线程,下次有线程访问的时候就会判断是不是之前访问过的线程访问,这样就原创 2020-09-02 11:19:55 · 1913 阅读 · 0 评论 -
Syn笔记--jol查看对象头
jol查看对象头来分析一波synchronize关键字加锁过程synchronize在jdk1.5之前就是一个重量级的锁,是在jvm层面加锁的一种形式,在字节码运行的过程中被翻译成了两个指令,速度很慢。jkd1.6开始对synchronize进行了非常多的优化,使sync有了一个锁升级机制,可以让sync在不同的场景下加不同的锁,大大提升了sync的效率。sync一共有三种锁状态:偏向锁、轻量级锁、重量级锁。下面通过查看class对象头的方式来查看这几个锁状态是怎么表现的。import org.open原创 2020-06-08 16:25:15 · 779 阅读 · 2 评论