René's URL Explorer Experiment


Title: JavaGuide/docs/java/Multithread/AQS.md at master · lpcman/JavaGuide · GitHub

Open Graph Title: JavaGuide/docs/java/Multithread/AQS.md at master · lpcman/JavaGuide

X Title: JavaGuide/docs/java/Multithread/AQS.md at master · lpcman/JavaGuide

Description: 「Java学习+面试指南」一份涵盖大部分Java程序员所需要掌握的核心知识。. Contribute to lpcman/JavaGuide development by creating an account on GitHub.

Open Graph Description: 「Java学习+面试指南」一份涵盖大部分Java程序员所需要掌握的核心知识。. Contribute to lpcman/JavaGuide development by creating an account on GitHub.

X Description: 「Java学习+面试指南」一份涵盖大部分Java程序员所需要掌握的核心知识。. Contribute to lpcman/JavaGuide development by creating an account on GitHub.

Opengraph URL: https://github.com/lpcman/JavaGuide/blob/master/docs/java/Multithread/AQS.md

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/blob/*name(/*path)
route-controllerblob
route-actionshow
fetch-noncev2:77963b99-b074-f14d-6c23-21a24c25a65e
current-catalog-service-hashf3abb0cc802f3d7b95fc8762b94bdcb13bf39634c40c357301c4aa1d67a256fb
request-idDA02:3DF338:134A274:1A3B97E:6A4D72AC
html-safe-nonce573c714d76e5e020c51f02143f5265e805ac0f3bce952144596d4e6df1e40832
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJEQTAyOjNERjMzODoxMzRBMjc0OjFBM0I5N0U6NkE0RDcyQUMiLCJ2aXNpdG9yX2lkIjoiNjg4MzMxMzIxOTcwNTU5ODYzNiIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9
visitor-hmac90939bbcd3aec2a3b178431c5d812676804be2eef935e02115c9eb47a9f40eb8
hovercard-subject-tagrepository:267277939
github-keyboard-shortcutsrepository,source-code,file-tree,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///blob/show
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/lpcman/JavaGuide/blob/master/docs/java/Multithread/AQS.md
twitter:imagehttps://opengraph.githubassets.com/eb14ec5b7de34ecafb012b92898c7f91ab3ba2be378f846706180e098049d7c2/lpcman/JavaGuide
twitter:cardsummary_large_image
og:imagehttps://opengraph.githubassets.com/eb14ec5b7de34ecafb012b92898c7f91ab3ba2be378f846706180e098049d7c2/lpcman/JavaGuide
og:image:alt「Java学习+面试指南」一份涵盖大部分Java程序员所需要掌握的核心知识。. Contribute to lpcman/JavaGuide development by creating an account on GitHub.
og:image:width1200
og:image:height600
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
Nonec78260c7b3f4ac4b0356c8208537f05406a3a2d46a9ec3f735b372dcc519c39e
turbo-cache-controlno-cache
go-importgithub.com/lpcman/JavaGuide git https://github.com/lpcman/JavaGuide.git
octolytics-dimension-user_id4230823
octolytics-dimension-user_loginlpcman
octolytics-dimension-repository_id267277939
octolytics-dimension-repository_nwolpcman/JavaGuide
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forktrue
octolytics-dimension-repository_parent_id132464395
octolytics-dimension-repository_parent_nwoSnailclimb/JavaGuide
octolytics-dimension-repository_network_root_id132464395
octolytics-dimension-repository_network_root_nwoSnailclimb/JavaGuide
turbo-body-classeslogged-out env-production page-responsive
disable-turbofalse
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release399fff412f48461d435721c009efc17ea44be72f
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/lpcman/JavaGuide/blob/master/docs/java/Multithread/AQS.md#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Flpcman%2FJavaGuide%2Fblob%2Fmaster%2Fdocs%2Fjava%2FMultithread%2FAQS.md
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub Copilot appDirect agents from issue to mergehttps://github.com/features/ai/github-app
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
View all resourceshttps://github.com/resources
GitHub SponsorsFund open source developershttps://github.com/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/accelerator
GitHub Starshttps://stars.github.com
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Flpcman%2FJavaGuide%2Fblob%2Fmaster%2Fdocs%2Fjava%2FMultithread%2FAQS.md
Sign up https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fblob%2Fshow&source=header-repo&source_repo=lpcman%2FJavaGuide
Reloadhttps://github.com/lpcman/JavaGuide/blob/master/docs/java/Multithread/AQS.md
Reloadhttps://github.com/lpcman/JavaGuide/blob/master/docs/java/Multithread/AQS.md
Reloadhttps://github.com/lpcman/JavaGuide/blob/master/docs/java/Multithread/AQS.md
lpcman https://github.com/lpcman
JavaGuidehttps://github.com/lpcman/JavaGuide
Snailclimb/JavaGuidehttps://github.com/Snailclimb/JavaGuide
Notifications https://github.com/login?return_to=%2Flpcman%2FJavaGuide
Fork 0 https://github.com/login?return_to=%2Flpcman%2FJavaGuide
Star 0 https://github.com/login?return_to=%2Flpcman%2FJavaGuide
Code https://github.com/lpcman/JavaGuide
Pull requests 0 https://github.com/lpcman/JavaGuide/pulls
Actions https://github.com/lpcman/JavaGuide/actions
Projects https://github.com/lpcman/JavaGuide/projects
Security and quality 0 https://github.com/lpcman/JavaGuide/security
Insights https://github.com/lpcman/JavaGuide/pulse
Code https://github.com/lpcman/JavaGuide
Pull requests https://github.com/lpcman/JavaGuide/pulls
Actions https://github.com/lpcman/JavaGuide/actions
Projects https://github.com/lpcman/JavaGuide/projects
Security and quality https://github.com/lpcman/JavaGuide/security
Insights https://github.com/lpcman/JavaGuide/pulse
https://github.com/lpcman/JavaGuide
JavaGuidehttps://github.com/lpcman/JavaGuide/tree/master
docshttps://github.com/lpcman/JavaGuide/tree/master/docs
javahttps://github.com/lpcman/JavaGuide/tree/master/docs/java
Multithreadhttps://github.com/lpcman/JavaGuide/tree/master/docs/java/Multithread
Historyhttps://github.com/lpcman/JavaGuide/commits/master/docs/java/Multithread/AQS.md
https://github.com/lpcman/JavaGuide/commits/master/docs/java/Multithread/AQS.md
JavaGuidehttps://github.com/lpcman/JavaGuide/tree/master
docshttps://github.com/lpcman/JavaGuide/tree/master/docs
javahttps://github.com/lpcman/JavaGuide/tree/master/docs/java
Multithreadhttps://github.com/lpcman/JavaGuide/tree/master/docs/java/Multithread
Rawhttps://github.com/lpcman/JavaGuide/raw/refs/heads/master/docs/java/Multithread/AQS.md
公众号https://github.com/lpcman/JavaGuide/blob/master/docs/java/Multithread/AQS.md#%E5%85%AC%E4%BC%97%E5%8F%B7
1 AQS 简单介绍https://github.com/lpcman/JavaGuide/blob/master/docs/java/Multithread/AQS.md#1-aqs-%E7%AE%80%E5%8D%95%E4%BB%8B%E7%BB%8D
2 AQS 原理https://github.com/lpcman/JavaGuide/blob/master/docs/java/Multithread/AQS.md#2-aqs-%E5%8E%9F%E7%90%86
2.1 AQS 原理概览https://github.com/lpcman/JavaGuide/blob/master/docs/java/Multithread/AQS.md#21-aqs-%E5%8E%9F%E7%90%86%E6%A6%82%E8%A7%88
2.2 AQS 对资源的共享方式https://github.com/lpcman/JavaGuide/blob/master/docs/java/Multithread/AQS.md#22-aqs-%E5%AF%B9%E8%B5%84%E6%BA%90%E7%9A%84%E5%85%B1%E4%BA%AB%E6%96%B9%E5%BC%8F
2.3 AQS 底层使用了模板方法模式https://github.com/lpcman/JavaGuide/blob/master/docs/java/Multithread/AQS.md#23-aqs-%E5%BA%95%E5%B1%82%E4%BD%BF%E7%94%A8%E4%BA%86%E6%A8%A1%E6%9D%BF%E6%96%B9%E6%B3%95%E6%A8%A1%E5%BC%8F
3 Semaphore(信号量)-允许多个线程同时访问https://github.com/lpcman/JavaGuide/blob/master/docs/java/Multithread/AQS.md#3-semaphore%E4%BF%A1%E5%8F%B7%E9%87%8F-%E5%85%81%E8%AE%B8%E5%A4%9A%E4%B8%AA%E7%BA%BF%E7%A8%8B%E5%90%8C%E6%97%B6%E8%AE%BF%E9%97%AE
4 CountDownLatch (倒计时器)https://github.com/lpcman/JavaGuide/blob/master/docs/java/Multithread/AQS.md#4-countdownlatch-%E5%80%92%E8%AE%A1%E6%97%B6%E5%99%A8
4.1 CountDownLatch 的三种典型用法https://github.com/lpcman/JavaGuide/blob/master/docs/java/Multithread/AQS.md#41-countdownlatch-%E7%9A%84%E4%B8%89%E7%A7%8D%E5%85%B8%E5%9E%8B%E7%94%A8%E6%B3%95
4.2 CountDownLatch 的使用示例https://github.com/lpcman/JavaGuide/blob/master/docs/java/Multithread/AQS.md#42-countdownlatch-%E7%9A%84%E4%BD%BF%E7%94%A8%E7%A4%BA%E4%BE%8B
4.3 CountDownLatch 的不足https://github.com/lpcman/JavaGuide/blob/master/docs/java/Multithread/AQS.md#43-countdownlatch-%E7%9A%84%E4%B8%8D%E8%B6%B3
4.4 CountDownLatch 常见面试题https://github.com/lpcman/JavaGuide/blob/master/docs/java/Multithread/AQS.md#44-countdownlatch-%E7%9B%B8%E5%B8%B8%E8%A7%81%E9%9D%A2%E8%AF%95%E9%A2%98
5 CyclicBarrier(循环栅栏)https://github.com/lpcman/JavaGuide/blob/master/docs/java/Multithread/AQS.md#5-cyclicbarrier%E5%BE%AA%E7%8E%AF%E6%A0%85%E6%A0%8F
5.1 CyclicBarrier 的应用场景https://github.com/lpcman/JavaGuide/blob/master/docs/java/Multithread/AQS.md#51-cyclicbarrier-%E7%9A%84%E5%BA%94%E7%94%A8%E5%9C%BA%E6%99%AF
5.2 CyclicBarrier 的使用示例https://github.com/lpcman/JavaGuide/blob/master/docs/java/Multithread/AQS.md#52-cyclicbarrier-%E7%9A%84%E4%BD%BF%E7%94%A8%E7%A4%BA%E4%BE%8B
5.3 CyclicBarrier源码分析https://github.com/lpcman/JavaGuide/blob/master/docs/java/Multithread/AQS.md#53-cyclicbarrier%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90
5.4 CyclicBarrier 和 CountDownLatch 的区别https://github.com/lpcman/JavaGuide/blob/master/docs/java/Multithread/AQS.md#54-cyclicbarrier-%E5%92%8C-countdownlatch-%E7%9A%84%E5%8C%BA%E5%88%AB
6 ReentrantLock 和 ReentrantReadWriteLockhttps://github.com/lpcman/JavaGuide/blob/master/docs/java/Multithread/AQS.md#6-reentrantlock-%E5%92%8C-reentrantreadwritelock
参考https://github.com/lpcman/JavaGuide/blob/master/docs/java/Multithread/AQS.md#%E5%8F%82%E8%80%83
公众号https://github.com/lpcman/JavaGuide/blob/master/docs/java/Multithread/AQS.md#%E5%85%AC%E4%BC%97%E5%8F%B7
https://github.com/lpcman/JavaGuide/blob/master/docs/java/Multithread/AQS.md#1-aqs-简单介绍
https://camo.githubusercontent.com/78442bccf097b4348d616fbf19a49df6891afbcd2d41e6b433d8d1774a0ebc01/68747470733a2f2f6d792d626c6f672d746f2d7573652e6f73732d636e2d6265696a696e672e616c6979756e63732e636f6d2f4a6176612532302545372541382538422545352542412538462545352539312539382545352542462538352545352541342538372545462542432539412545352542392542362545352538462539312545372539462541352545382541462538362545372542332542422545372542422539462545362538302542422545372542422539332f4151532e706e67
https://github.com/lpcman/JavaGuide/blob/master/docs/java/Multithread/AQS.md#2-aqs-原理
https://github.com/lpcman/JavaGuide/blob/master/docs/java/Multithread/AQS.md#21-aqs-原理概览
https://camo.githubusercontent.com/a9d01488bea0848f4dfcf599475d6f44f913137c07ac4a84e76a39e4138608fb/68747470733a2f2f6d792d626c6f672d746f2d7573652e6f73732d636e2d6265696a696e672e616c6979756e63732e636f6d2f4a6176612532302545372541382538422545352542412538462545352539312539382545352542462538352545352541342538372545462542432539412545352542392542362545352538462539312545372539462541352545382541462538362545372542332542422545372542422539462545362538302542422545372542422539332f434c482e706e67
https://github.com/lpcman/JavaGuide/blob/master/docs/java/Multithread/AQS.md#22-aqs-对资源的共享方式
https://www.javadoop.com/post/AbstractQueuedSynchronizer-2https://www.javadoop.com/post/AbstractQueuedSynchronizer-2
https://github.com/lpcman/JavaGuide/blob/master/docs/java/Multithread/AQS.md#23-aqs-底层使用了模板方法模式
http://www.cnblogs.com/waterystone/p/4920797.htmlhttp://www.cnblogs.com/waterystone/p/4920797.html
https://www.cnblogs.com/chengxiao/archive/2017/07/24/7141160.htmlhttps://www.cnblogs.com/chengxiao/archive/2017/07/24/7141160.html
https://github.com/lpcman/JavaGuide/blob/master/docs/java/Multithread/AQS.md#3-semaphore信号量-允许多个线程同时访问
issue645补充内容https://github.com/Snailclimb/JavaGuide/issues/645
https://juejin.im/post/5ae755366fb9a07ab508adc6https://juejin.im/post/5ae755366fb9a07ab508adc6
https://github.com/lpcman/JavaGuide/blob/master/docs/java/Multithread/AQS.md#4-countdownlatch-倒计时器
https://github.com/lpcman/JavaGuide/blob/master/docs/java/Multithread/AQS.md#41-countdownlatch-的两种典型用法
https://github.com/lpcman/JavaGuide/blob/master/docs/java/Multithread/AQS.md#42-countdownlatch-的使用示例
【JUC】JDK1.8源码分析之CountDownLatch(五)https://www.cnblogs.com/leesf456/p/5406191.html
https://github.com/lpcman/JavaGuide/blob/master/docs/java/Multithread/AQS.md#43-countdownlatch-的不足
https://github.com/lpcman/JavaGuide/blob/master/docs/java/Multithread/AQS.md#44-countdownlatch-相常见面试题
https://github.com/lpcman/JavaGuide/blob/master/docs/java/Multithread/AQS.md#5-cyclicbarrier循环栅栏
https://github.com/lpcman/JavaGuide/blob/master/docs/java/Multithread/AQS.md#51-cyclicbarrier-的应用场景
https://github.com/lpcman/JavaGuide/blob/master/docs/java/Multithread/AQS.md#52-cyclicbarrier-的使用示例
https://github.com/lpcman/JavaGuide/blob/master/docs/java/Multithread/AQS.md#53-cyclicbarrier源码分析
https://github.com/lpcman/JavaGuide/blob/master/docs/java/Multithread/AQS.md#54-cyclicbarrier-和-countdownlatch-的区别
https://github.com/lpcman/JavaGuide/blob/master/docs/java/Multithread/AQS.md#6-reentrantlock-和-reentrantreadwritelock
https://github.com/lpcman/JavaGuide/blob/master/docs/java/Multithread/AQS.md#参考
https://juejin.im/post/5ae755256fb9a07ac3634067https://juejin.im/post/5ae755256fb9a07ac3634067
https://blog.csdn.net/u010185262/article/details/54692886https://blog.csdn.net/u010185262/article/details/54692886
https://blog.csdn.net/tolcf/article/details/50925145?utm_source=blogxgwz0https://blog.csdn.net/tolcf/article/details/50925145?utm_source=blogxgwz0
https://github.com/lpcman/JavaGuide/blob/master/docs/java/Multithread/AQS.md#公众号
公众号https://github.com/lpcman/JavaGuide/blob/master/docs/java/Multithread/AQS.md#%E5%85%AC%E4%BC%97%E5%8F%B7
https://camo.githubusercontent.com/ba1d28c90e9b600c150231bb90bd7facc425f64bac5c958967be5892c7f22298/68747470733a2f2f6d792d626c6f672d746f2d7573652e6f73732d636e2d6265696a696e672e616c6979756e63732e636f6d2f323031392d362f313637353938636432653137623865632e706e67
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.