【面试普通人VS高手系列】谈谈你对AQS的理解

AQS是AbstractQueuedSynchronizer的简称,是并发编程中比较核心的组件。
在很多大厂的面试中,面试官对于并发编程的考核要求相对较高,简单来说,如果你不懂并发编程,那么你很难通过大厂高薪岗位的面试。
今天来和大家聊聊并发编程中的AQS组件。
我们来看一下,关于“谈谈你对AQS的理解“,看看普通人和高手是如何回答的!

普通人的回答:
AQS全称是AbstractQueuedSynchronizer,它是J.U.C包中Lock锁的底层实现,可以用它来实现多线程的同步器!

高手的回答:
AQS是多线程同步器,它是J.U.C包中多个组件的底层实现,如Lock、CountDownLatch、Semaphore等都用到了AQS。

从本质上来说,AQS提供了两种锁机制,分别是排它锁和 共享锁。

排它锁,就是存在多线程竞争同一共享资源时,同一时刻只允许一个线程访问该共享资源,也就是多个线程中只能有一个线程获得锁资源,比如Lock中的ReentrantLock重入锁实现就是用到了AQS中的排它锁功能。

共享锁也称为读锁,就是在同一时刻允许多个线程同时获得锁资源,比如CountDownLatch和Semaphore都是用到了AQS中的共享锁功能。

总结
关于普通人和高手对于这个问题的回答,哪个更加好呢? 你们如果有更好的回答,可以在下方评论区留言。

另外,我整理了一张比较完整的并发编程知识体系的脑图,大家感兴趣的可以私信我获取。

本期的普通人VS高手面试系列就到这里结束了,喜欢的朋友记得一键三连,加个关注。

我是Mic,一个工作了14年的Java程序员,咱们下篇文章再见。

你可能感兴趣的:(【面试普通人VS高手系列】谈谈你对AQS的理解)