All Projects → CL0610 → Java Concurrency

CL0610 / Java Concurrency

Java并发知识点总结

Projects that are alternatives of or similar to Java Concurrency

Java Interview
At the beginning, it was the repository with questions from Java interviews. Currently, it's more like knowledge base with useful links.
Stars: ✭ 114 (-96.7%)
Mutual labels:  concurrency, interview, interview-questions
React-Interview-Questions
During the last three years had a lot of react interview questions so i decided to collect them all in one place to help other have an idea of most asked react questions , so if you have any more questions feel free to make a pull request and add your question along with its answer .
Stars: ✭ 37 (-98.93%)
Mutual labels:  interview, interview-questions
interview-process-survival
🌈 🦄 this repository is a interview process guide for developers (web/frontend focused)
Stars: ✭ 191 (-94.47%)
Mutual labels:  interview, interview-questions
Commondevknowledge
🔥 🌟⭐⭐⭐ ⭐ 史上最全的BAT大厂Android面试题汇集,以及常用的Android开发的一些技能点,冷门知识点汇总,开发中遇到的坑汇总等干货。
Stars: ✭ 2,831 (-18.11%)
Mutual labels:  interview, interview-questions
iOS-Interview
📚 Comprehensive list of questions and problems to pass an interview for the iOS Developer position
Stars: ✭ 127 (-96.33%)
Mutual labels:  interview, interview-questions
Coder
求职信息 组队刷题 经验交流
Stars: ✭ 22 (-99.36%)
Mutual labels:  interview, interview-questions
interview-tips
A collection of awesome Interview Tips and Questions
Stars: ✭ 29 (-99.16%)
Mutual labels:  interview, interview-questions
AlgoDaily
just for fun
Stars: ✭ 118 (-96.59%)
Mutual labels:  interview, interview-questions
svelte-interview-questions
Concepts and Questions related to Svelte - Part of official Svelte resources list
Stars: ✭ 18 (-99.48%)
Mutual labels:  interview, interview-questions
Zio
ZIO — A type-safe, composable library for async and concurrent programming in Scala
Stars: ✭ 3,167 (-8.39%)
Mutual labels:  concurrency, concurrent-programming
Front End Interview
A list of interview for front-end developer(前端开发者面试清单)
Stars: ✭ 2,754 (-20.34%)
Mutual labels:  interview, interview-questions
Ios Interview Questions
iOS面试题整理,在线查看地址:https://ios.nobady.cn
Stars: ✭ 258 (-92.54%)
Mutual labels:  interview, interview-questions
transit
Massively real-time city transit streaming application
Stars: ✭ 20 (-99.42%)
Mutual labels:  concurrency, concurrent-programming
dev-recruitment
👨🏼‍💻 Test your developer skills. Questions and answers at various levels (from junior developer up to senior developer).
Stars: ✭ 19 (-99.45%)
Mutual labels:  interview, interview-questions
Coding-Interview-Challenges
This is a repo where I upload code for important interview questions written in Python, C++, and Swift
Stars: ✭ 13 (-99.62%)
Mutual labels:  interview, interview-questions
mux-stream
(De)multiplex asynchronous streams
Stars: ✭ 34 (-99.02%)
Mutual labels:  concurrency, concurrent-programming
Fe Interview
🔥🔥🔥 前端面试,独有前端面试题详解,前端面试刷题必备,1000+前端面试真题,Html、Css、JavaScript、Vue、React、Node、TypeScript、Webpack、算法、网络与安全、浏览器
Stars: ✭ 4,435 (+28.29%)
Mutual labels:  interview, interview-questions
Coding-Interview-101
Solutions to LeetCode problems filtered with companies, topics and difficulty.
Stars: ✭ 21 (-99.39%)
Mutual labels:  interview, interview-questions
Android-Interview-Study-2022
🤓 2021~ 안드로이드 취직 대비 면접 공부 기록터 📖
Stars: ✭ 92 (-97.34%)
Mutual labels:  interview, interview-questions
geeteventbus
An inprocess eventbus for highly concurrent Python applications
Stars: ✭ 17 (-99.51%)
Mutual labels:  concurrency, concurrent-programming

努力的意义,就是,在以后的日子里,放眼望去全是自己喜欢的人和事!

欢迎提issue和Pull request。所有的文档都是自己亲自码的,如果觉得不错,欢迎给star鼓励支持 :)

整个系列文章为Java并发专题,一是自己的兴趣,二是,这部分在实际理解上很有难度,另外在面试过程中也是经常被问到。所以在学习过程中,记录了Java并发相关的基础知识,一是自己对知识能够建立体系,同时也希望有幸能够对其他人有用。

关于Java并发专题:

(1)包含了并发的基础知识,每个标题链接到一篇具体的文章;

(2)包含了秋招面试的问题,弄懂了会让你有所收获(也祝大家都能找到心仪的工作 :) )

(3)在阅读过程中,如果有所帮助,麻烦点赞,算是对我码字的这份坚持的鼓励。

注:转载请标明原处,谢谢!

  1. 基础知识

    1.1 并发编程的优缺点

    知识点:(1)为什么要用到并发?(优点);(2)并发编程的缺点;(3)易混淆的概念

    1.2 线程的状态和基本操作

    知识点:(1)如何新建线程;(2)线程状态的转换;(3)线程的基本操作;(4)守护线程Daemon;

  2. 并发理论(JMM)

    java内存模型以及happens-before规则

    知识点:(1)JMM内存结构;(2)重排序;(3)happens-before规则

  3. 并发关键字

    3.1 让你彻底理解Synchronized

    知识点:(1)如何使用synchronized;(2)monitor机制;(3)synchronized的happens-before关系;(4)synchronized的内存语义;(5)锁优化;(6)锁升级策略

    3.2 让你彻底理解volatile

    知识点:(1)实现原理;(2)happens-before的关系推导;(3)内存语义;(4)内存语义的实现

    3.3 你以为你真的了解final吗?

    知识点:(1)如何使用;(2)final的重排序规则;(3)final实现原理;(4)final引用不能从构造函数中“溢出”(this逃逸)

    3.4 三大性质总结:原子性,有序性,可见性

    知识点:(1)原子性:synchronized;(2)可见性:synchronized,volatile;(3)有序性:synchronized,volatile

  4. Lock体系

    4.1 初识Lock与AbstractQueuedSynchronizer(AQS)

    知识点:(1)Lock和synchronized的比较;(2)AQS设计意图;(3)如何使用AQS实现自定义同步组件;(4)可重写的方法;(5)AQS提供的模板方法;

    4.2 深入理解AbstractQueuedSynchronizer(AQS)

    知识点:(1)AQS同步队列的数据结构;(2)独占式锁;(3)共享式锁;

    4.3 再一次理解ReentrantLock

    知识点:(1)重入锁的实现原理;(2)公平锁的实现原理;(3)非公平锁的实现原理;(4)公平锁和非公平锁的比较

    4.4 深入理解读写锁ReentrantReadWriteLock

    知识点:(1)如何表示读写状态;(2)WriteLock的获取和释放;(3)ReadLock的获取和释放;(4)锁降级策略;(5)生成Condition等待队列;(6)应用场景

    4.5 详解Condition的await和signal等待/通知机制

    知识点:(1)与Object的wait/notify机制相比具有的特性;(2)与Object的wait/notify相对应的方法;(3)底层数据结构;(4)await实现原理;(5)signal/signalAll实现原理;(6)await和signal/signalAll的结合使用;

    4.6 LockSupport工具

    知识点:(1)主要功能;(2)与synchronized阻塞唤醒相比具有的特色;

  5. 并发容器

    5.1 并发容器之ConcurrentHashMap(JDK 1.8版本)

    知识点:(1)关键属性;(2)重要内部类;(3)涉及到的CAS操作;(4)构造方法;(5)put执行流程;(6)get执行流程;(7)扩容机制;(8)用于统计size的方法的执行流程;(9)1.8版本的ConcurrentHashMap与之前版本的比较

    5.2 并发容器之CopyOnWriteArrayList

    知识点:(1)实现原理;(2)COW和ReentrantReadWriteLock的区别;(3)应用场景;(4)为什么具有弱一致性;(5)COW的缺点;

    5.3 并发容器之ConcurrentLinkedQueue

    知识点:(1)实现原理;(2)数据结构;(3)核心方法;(4)HOPS延迟更新的设计意图

    5.4 并发容器之ThreadLocal

    知识点:(1)实现原理;(2)set方法原理;(3)get方法原理;(4)remove方法原理;(5)ThreadLocalMap

    一篇文章,从源码深入详解ThreadLocal内存泄漏问题

    知识点:(1)ThreadLocal内存泄漏原理;(2)ThreadLocal的最佳实践;(3)应用场景

    5.5 并发容器之BlockingQueue

    知识点:(1)BlockingQueue的基本操作;(2)常用的BlockingQueue;

    并发容器之ArrayBlockingQueue和LinkedBlockingQueue实现原理详解

  6. 线程池(Executor体系)

    6.1 线程池实现原理

    知识点:(1)为什么要用到线程池?(2)执行流程;(3)构造器各个参数的意义;(4)如何关闭线程池;(5)如何配置线程池;

    6.2 线程池之ScheduledThreadPoolExecutor

    知识点:(1)类结构;(2)常用方法;(3)ScheduledFutureTask;(3)DelayedWorkQueue;

    6.3 FutureTask基本操作总结

    知识点:(1)FutureTask的几种状态;(2)get方法;(3)cancel方法;(4)应用场景;(5)实现 Runnable接口

  7. 原子操作类

    7.1 Java中atomic包中的原子操作类总结

    知识点:(1)实现原理;(2)原子更新基本类型;(3)原子更新数组类型;(4)原子更新引用类型;(5)原子更新字段类型

  8. 并发工具

    8.1 大白话说java并发工具类-CountDownLatch,CyclicBarrier

    知识点:(1)倒计时器CountDownLatch;(2)循环栅栏CyclicBarrier;(3)CountDownLatch与CyclicBarrier的比较

    8.2 大白话说java并发工具类-Semaphore,Exchanger

    知识点:(1)资源访问控制Semaphore;(2)数据交换Exchanger

  9. 并发实践

    9.1 一篇文章,让你彻底弄懂生产者--消费者问题

JAVA并发知识图谱

可移动到新窗口,放大查看效果更好或者查看原图

知识图谱原图链接,如果有用,可克隆给自己使用

JAVA并发知识图谱.png

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].