锁
点不点外卖
这个作者很懒,什么都没留下…
展开
-
【并发编程】ReentrantLock
ReentrantLock是什么 ReentrantLock继承自AbstractQueuedSynchronizer,即AQS, AQS可以理解为一个线程排队获取CPU的队列。队列中放的是一个个的Node。 * +------+ prev +-----+ +-----+ * head | | <---- | | <---- | | tail * +------+原创 2020-10-27 17:44:14 · 135 阅读 · 1 评论 -
【并发编程】Synchronized
Synchronized是什么? synchronized是用来实现同步代码块的关键字,通过C++代码实现,在JDK1.6以前synchronized通过mutex互斥量实现,涉及用户态和内核态的切换,效率低下,直接就是重量级锁。而JUC包下的Lock通过AQS实现对共享资源的同步控制,效率相对synchronized要高,因此1.6以后对synchronized进行了优化,避免直接使用系统函数加锁。 偏向锁、轻量锁、重量锁 偏向锁:同一个线程多次访问共享资源,在加锁之前检查对象头中的线程ID,如果是当前原创 2020-10-22 16:40:41 · 92 阅读 · 0 评论