{"id":19889352,"url":"https://github.com/codeprometheus/java-concurrency","last_synced_at":"2026-02-06T02:02:48.542Z","repository":{"id":45527675,"uuid":"302000706","full_name":"CodePrometheus/Java-Concurrency","owner":"CodePrometheus","description":"Java 并发编程，同步原语","archived":false,"fork":false,"pushed_at":"2022-09-21T08:12:58.000Z","size":8501,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2023-03-04T00:53:09.604Z","etag":null,"topics":["aqs","cas","concurrency","java","jmm","lock","thread","threadpool"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CodePrometheus.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-10-07T10:24:45.000Z","updated_at":"2023-01-30T09:57:21.000Z","dependencies_parsed_at":"2023-01-18T17:45:07.528Z","dependency_job_id":null,"html_url":"https://github.com/CodePrometheus/Java-Concurrency","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodePrometheus%2FJava-Concurrency","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodePrometheus%2FJava-Concurrency/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodePrometheus%2FJava-Concurrency/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodePrometheus%2FJava-Concurrency/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CodePrometheus","download_url":"https://codeload.github.com/CodePrometheus/Java-Concurrency/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224324413,"owners_count":17292521,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aqs","cas","concurrency","java","jmm","lock","thread","threadpool"],"created_at":"2024-11-12T18:09:54.253Z","updated_at":"2026-02-06T02:02:43.508Z","avatar_url":"https://github.com/CodePrometheus.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Java-Concurrency\n\nJava并发编程\n\n## 线程\n\n     创建线程的两种方法\n     正确启动线程\n     正确停止线程\n     线程六大生命周期\n     Thread和Object中的重要方法\n     线程的属性\n     未捕获异常的处理\n     线程安全问题\n     ThreadPool\n     ThreadLocal\n     线程核心知识总结\n\n## 锁\n\n     乐观与悲观锁\n     公平与非公平锁\n     可重入锁与非可重入锁：以ReentrantLock为例\n     共享锁和排他锁：以ReentrantReadWriterLock读写锁为例\n     自旋锁和阻塞锁\n     可中断锁\n     锁优化\n\n## 死锁\n\n    死锁的发生\n    定位死锁\n    哲学家进餐问题与解决\n    避免死锁\n    活锁问题\n    饥饿\n\n## Synchronized\n\n    作用用法\n    性质\n    原理\n    缺陷\n\n## 原子类\n\n    基本类型原子类\n        AtomicInteger\n        AtomicLong\n        AtomicBoolean\n     \n    数组类型原子类\n        AtomicIntegerArray\n        AtomicLongArray\n        AtomicReferenceArray\n           \n    引用类型原子类\n        AtomicReference\n        AtomicStampedReference\n        AtomicMarkableReference\n        \n    升级类型原子类\n        AtomicIntegerFieldUpdater\n        AtomicLongFieldUpdater\n        AtomicReferenceFieldUpdater\n        \n    Adder累加器\n        LongAdder\n        DoubleAdder\n        \n    Accumulator累加器\n        LongAccumulator\n        DoubleAccumulator  \n\n## CAS\n\n    原理\n    应用场景\n    Java中如何利用CAS实现原子操作\n    缺点\n\n## 不可变性\n\n    final的作用与用法\n    不可变性\n    栈封闭\n\n## 并发容器\n\n    ConcurrentHashMap\n    CopyOnWriteArrayList\n    并发队列\n        阻塞队列\n        非阻塞队列\n\n## 控制并发流程\n\n    各个线程之间相互协调\n    CountDownLatch(一等多，多等一)\n    Semaphore(控制并发总量)\n    Condition\n    CyclicBarrier\n\n## AQS\n\n    state\n    控制线程抢锁和配合的FIFO队列\n    期望协作工具类去实现的获取/释放等重要方法\n\n## Future\n\n    Future接口\n    主要方法\n    FutureTask\n    注意点\n    CompletableFuture\n\n## JMM\n\n    内存模型\n    重排序\n    可见性\n    原子性\n    常见问题\n\n## Queue\n    \n    ArrayBlockingQueue\n    LinkedBlockingQueue\n    LinkedTransferQueue\n    PriorityBlockingQueue\n    SynchronousQueue\n    DelayQueue","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodeprometheus%2Fjava-concurrency","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodeprometheus%2Fjava-concurrency","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodeprometheus%2Fjava-concurrency/lists"}