1.每个对象都拥有一把锁,这把锁存放在对象头中 对象头 包括: Mark Word 和Class Point 其中Classpoint是类型指针,指向类元数据的InstanceKlass,确定该对象所属的类型 Mark Word 2.synchronized(互斥锁)的实现原理 1.monitor( ...
分类:
编程语言 时间:
2021-01-01 11:51:28
阅读次数:
0
synchronzied CountDownLatch 【 倒计时闩锁 】 https://www.cnblogs.com/sweetorangezzz/p/13186587.html 当计数为0的时候,下一步的动作实施者是main函数。 CyclicBarrier 【 篱栅 】 达到一定计数,下一 ...
分类:
编程语言 时间:
2020-06-24 19:35:39
阅读次数:
68
CAS无锁机制 CAS:Compare and Swap,即比较再交换。 Java内存模型:JMM(Java Memory Model) 在内存模型当中定义了一个主内存,所有声明的实例变量都存在于主内存当中,主内存的数据会共享给所有线程,每一个线程有一块工作内存,工作内存当中主内存数据的副本 当更新 ...
分类:
编程语言 时间:
2020-03-26 19:31:44
阅读次数:
86
公平锁/非公平锁 可重入锁 独享锁/共享锁 互斥锁/读写锁 乐观锁/悲观锁(实现秒杀的一种解决方案) (select * from product p where p.type=’xxxxx’ for update) 分段锁 偏向锁/轻量级锁/重量级锁 自旋锁 这些分类并不是全是指锁的状态,有的指锁 ...
分类:
编程语言 时间:
2020-01-30 21:13:57
阅读次数:
64
锁是用于控制多线程对共享资源的访问。 Java中的锁可以分为内置锁与显式锁Lock。其中内置锁指synchronized关键字。 Synchronized synchronized可以修饰方法或代码块(在修饰代码块时,会在编译后在代码块前后加入monitorenter和monitorexit指令,修 ...
分类:
编程语言 时间:
2019-05-03 21:11:11
阅读次数:
157
锁的种类 独享锁 VS 共享锁 独享锁:锁只能被一个线程持有(synchronized) 共享锁:锁可以被多个程序所持有(读写锁) 乐观锁 VS 悲观锁 乐观锁:每次去拿数据的时候都乐观地认为别人不会修改,所以不进行加锁操作。乐观锁适用于多读的应用类型。(CAS,Atomic) CAS(Compar ...
分类:
编程语言 时间:
2019-04-05 00:16:09
阅读次数:
183
链接地址01:https://www.cnblogs.com/aspirant/p/6930436.html 链接地址01:https://blog.csdn.net/nalanmingdian/article/details/77800355 ...
分类:
编程语言 时间:
2019-03-28 14:07:34
阅读次数:
154
线程同步 什么是线程同步 线程之间执行是有先后顺序的,一个线程要等待上一个线程执行完之后才开始执行当前的线程。 为什么要线程同步 java允许多线程并发控制,当多个线程同时操作一个可共享的资源变量时(如数据的增删改查), 将会导致数据不准确,相互之间产生冲突,所以需要线程同步执行,保证了该变量的唯一 ...
分类:
编程语言 时间:
2018-10-10 19:07:12
阅读次数:
133
前言 只有光头才能变强 回顾前面: "ThreadLocal就是这么简单" "多线程三分钟就可以入个门了!" "多线程基础必要知识点!看了学习多线程事半功倍" "Java锁机制了解一下" "AQS简简单单过一遍" "Lock锁子类了解一下" "线程池你真不来了解一下吗?" 本篇主要是讲解 死锁 ,这 ...
分类:
编程语言 时间:
2018-05-06 20:04:49
阅读次数:
196
前言 只有光头才能变强 回顾前面: "ThreadLocal就是这么简单" "多线程三分钟就可以入个门了!" "多线程基础必要知识点!看了学习多线程事半功倍" "Java锁机制了解一下" "AQS简简单单过一遍" "Lock锁子类了解一下" 本篇主要是讲解线程池,这是我在多线程的倒数第二篇了, 后面 ...
分类:
编程语言 时间:
2018-05-05 23:09:19
阅读次数:
430