高并发
「已注销」
博客大部分内容原创,少部分存在笔记转载,如有您感觉到好,想转载,请表明转载地址,请标注不用于任何盈利用途声明,在此十分感谢
展开
-
static 锁、class锁和this锁之间的关系
(改进,其解释十分的清晰)百度知道的一句话:synchronized(this) 表示的是所有线程需要排队获取当前类的实例的锁;锁住的是一个实例对象锁而 synchronized(xxx.class) 表示的是所有线程需要排队获取当前类的锁;锁住的是一个当前类的字节码信息其区别就在于 this 是一个实例,而 xxx.class 是一个整个的 class字节码信息static 锁锁住的对象也当前类的字节码信息 ,与class一致,...原创 2020-07-04 11:32:57 · 651 阅读 · 0 评论 -
证明Class锁的存在
public class SynchronizedThis { public static void main(String[] args) { ThisLock thisLock = new ThisLock(); new Thread("T1") { @Override public void run() { thisLock.m1(); }原创 2020-07-04 11:11:07 · 122 阅读 · 0 评论 -
thread start() 源码解析
我们步步深入start()进入到start()方法的源码在这里线程会加入到线程分组,然后执行start0(),从图片可以看书start0 是一个本地的方法,start0()这个方法是在Thread的静态块中来注册的,其作用就是注册一些本地方法提供给Thread类来使用,比如start0()、isAlive()… ,具体方法在一个C的文件中Thread.c,其定义了各个操作系统平台要用的关于线程的公共数据和操作,具体定义了很多的方法都是各个操作系统能公共调用的,也就是线程在构建时候,会将这些方法注册原创 2020-07-01 10:53:08 · 2041 阅读 · 1 评论