以下文章基本上保证真实可信,如有谬误欢迎指正;
同时很多内容来自个人有道笔记的摘抄,如果有不清不楚的地方还请见谅,可留言告知我完善相关内容;
也随时欢迎咨询和讨论~
有助于新手初步了解线程相关的知识同时加深对基础的理解。
了解线程的状态、常用方法以及Thread、Runnable、Callable、Future、FutureTask这些基础概念和简单应用。
有助于了解线程池相关的知识、包括线程池执行逻辑、常用方法;
以及java为我们提供常用的线程池和任务调度ScheduledExecutorService以及工作窃取ForkJoin;
学习java提供的线程池的同时、理解应用场景和原理;根据业务场景和并发的原则自定义适合自身业务的线程池。
包含多线程基本的概念、进程和线程、并发和并行、java.utils.concurrent包中和线程相关的类;
有时间的同学可以把java.utils.concurrent整体都看几遍
Java多线程③——Guava并发;Java多线程④---CompletableFuture简述
深入使用异步和多线程绕不开的Guave和Jdk8的CompletableFuture;
包含简单的Guave的ListenableFuture和Jdk8的CompletableFuture使用方法示例。
知识在进阶开发面试中可能会用到,同时了解这些只有有助于我们写出高并发的代码;
对象的内存布局、同步关键字的底层原理--->锁的概念 偏向锁(无锁)----> 自旋锁(cas) ----> 重量锁
Java引用(强、软、弱、虚)的应用场景、ThreadLocal使用注意事项
lock、condition、ReadWriteLock 接口;锁相关方法、简单应用和底层实现原理
了解LockSupport.park;和互斥量相关知识;
待完成:java多线程常用队列和小工具
线程工具:CountDownLatch、CyclicBarrier、Exchanger、Semaphore 在线程花絮有简单介绍
队列FIFO先进先出:
newCachedThreadPool无界线程池使用 SynchronousQueue;
ScheduledExecutorService任务调度线程池使用 DelayedWorkQueue;
PriorityBlockingQueue、SynchronousQueue、ArrayBlockingQueue、LinkedBlockingQueue
从队列再延伸到数据结构和算法;后续也推出java数据结构和算法相关博客~
待完成:响应式编程Java8、RxJava和Reactor、akka、webflux
暂时理解不深有机会补充相关知识。
- Composable(可组合)
- Lazy(惰性执行)
- Reusable(可复用)
- Asynchronous(异步)
- Cacheable(可缓存)
- Push or Pull(推拉模型)
- Backpressure(回压)
- Operator fusion(操作融合)
发现一个博客对ForkJion讲的很清楚,转载给大家,需要了解的可以自行阅读,同时此博主的相关博客也很优秀。
以上是我个人对java并发脉络的梳理,偏向应用,欢迎讨论和交流,谢谢~