之前只是用过 Atomic 一些类以及 ConcurrentHashMap,知道多线程下如何使用这些类以及可以实现什么功能
前段时间面了两家,问了个问题让我简单讲一下 AQS,当时很紧张,只回答了 AQS 是实现锁以及一些并发工具的底层,CAS 保证线程安全
回头看了看(美团的 AQS 文章)[https://tech.meituan.com/2019/12/05/aqs-theory-and-apply.html],我了解了 AQS 里边有一个双端队列,用于存放等待的线程
但是再往细了看源码,有写 if 里边的判断,逻辑相当复杂,此时不禁想了这个问题,难道过一遍相应的方法,知道这个方法大概做了什么就可以了? 或者说应该如何学习源码?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.