邮箱 : [email protected]
Github : https://github.com/qiurunze123
QQ : 3341386488
QQ群 : 453259026
转载等操作请联系我! 我更希望你在我的基础上重新自己写一版
介绍 :
! 你真的知道如何使用多线程吗?
! 你真的知道多线程有几种实现方式吗?
! 你真的知道多线程valatile的使用和原理吗?
! 你真的知道线程的全部生命周期吗?
! 你真的知道知道AQS使用和原理吗?
! 你真的知道线程的并发安全吗?
! 你真的知道死锁和如何发现解决死锁这些问题吗?
! 你真的知道各种阻塞队列如何使用和原理吗?
! 你真的知道如何多线程状态属性有哪些吗?
! 你真的知道如何去使用JUC并发包吗?
! 你真的知道如何多线程底层原理吗?
! 你真的知道如何多线程的状态扭机流转吗?
! 你真的知道如何多线程并发底层原理吗?
! 你真的知道java的内存模型和线程安全吗?
! 你真的知道javaCAS操作与原理吗?
! 你真的知道如何使用锁与各种锁得性质吗?
! 你真的知道如何使用线程池吗?
! 你真的知道reentrantlock......等使用和原理吗?
! 你真的知道如何设计一个安全可靠的高并发企业级系统吗?(比如我的三高导入系统)
- 如果你不知道那还不赶紧fork+star我的项目.免费给你更新还等啥啊.过了这村没这店了! 有问题可以加我讨论可以进群
重点这个是先行项目---可先下滑了解基础和进阶 手写线程池,线程池底层源码解析已更新
three-high-import 项目意义在于利用多线程进行千万级别导入,实现可扩展
,高性能
,高可用
,高可靠
三个高,本项目可以在千万级别数据实现无差别高性能数据上报
与导入,与普通导入相比性能提高10倍左右,而且规避风险在偶尔的机器宕机,网络波动等情况出现时,仍能够实现数据一致
,数据可靠
,数据重试
,数据报警
等功能,在一些重要数据
例如: 对账 , 账户金额,账单等,需要每日定时任务而且有高风险的数据实现数据无错误!
多线程从基础到进阶,分析入坑出坑,以及工作实操,最后会分享一个项目,针对如何进行大数据量(经测试几亿数据完全搞的定)进行安全高可用的策略,
示例为高可用高可靠高性能 三高导入系统 DEMO分析 ,如何进行数据分片,数据导入,计算,多线程策略等等 本文属于进阶系列,有问题或者更好的想法可以一起探讨!
一点小建议:学习本系列知识之前,如果你完全没接触过 SpringBoot
、CountDownLatch
、线程池
、工作队列
、工作窃取等
等,那么我建议你可以先在网上搜一下每一块知识的快速入门, 也可以下载本项目边做边学习,
我的项目完全是实战加讲解不想写一堆的文章,浪费我们的生命,你还不懂内层含义,想要明白就边实际操作边学习 加油💪💪
ID | Problem | Article |
---|---|---|
了解 | 你需要知道的几个概念 | 解决思路 |
000 | 多线程到底有几种实现方式 | 解决思路 |
001 | 多线程使用runnable与继承Thread类有什么区别 | 解决思路 |
002 | 多线程如何正确优雅的中断线程 | 解决思路 |
003 | 多线程的生命周期状态纽机流转错误错误说法? | 解决思路 |
003-1 | 多线程的生命周期状态纽机流转 | 解决思路 |
003-2 | Thread和Object类 | 解决思路 |
004 | 多线程重要属性 | 解决思路 |
005 | 多线程异常处理机制 | 解决思路 |
006 | 多线程wait notify notifyall join sleep yield作用与方法详细解读 | 解决思路 |
007 | 多线程可能会带来什么问题 | 解决思路 |
008 | 多种单例模式 | 解决思路 |
ID | Problem | Article |
---|---|---|
重点 | 多线程安全问题 | 解决思路 |
重点 | JMM多线程内存模型 | 解决思路 |
impo-1 | JMM多线程内存模型 | 解决思路 |
重点 | 死锁专题分析 | 解决思路 |
重点 | AQS--一切的基础 Doug Lee 是个天才 | 解决思路 |
重点 | Future模式精度分析 Future 模式 | 解决思路 |
000 | java并行程序基础(已完成) | 解决思路 |
001 | java内存模型和线程安全(已完成) | 解决思路 |
002 | valatile 专题解析(已完成) | 解决思路 |
003 | 无锁类 CAS , ABA , Atomic ......(已完成) | 解决思路 |
004 | 公平锁,非公平锁,可重入锁,递归锁,自旋锁等的理解..(已完成) | 解决思路 |
005 | 阻塞队列..(已完成) | 解决思路 |
006 | 插播 synchronized和lock 的区别 彻底分析..(已完成) | 解决思路 |
008 | AQS .....(有待分析) | 解决思路 |
009 | JDK并发包reentrantlock,condition , semaphone ,readwritelock | 解决思路 |
010 | countDownLatch | 解决思路 |
011 | reentrantlock 源码分析 ReentrantLockDetails | 解决思路 |
012 | JDK并发包 ConcurrentHashMap 精度分析(粗略版已完成) | 解决思路 |
014 | JDK ForkJoin 模式精度分析(粗略版已完成) | 解决思路 |
015 | JDK 单例模式 不变模式 Future模式 生产者 消费者 ... (粗略版已完成)) | 解决思路 |
016 | NIO AIO 详解 (粗略版已完成) | 解决思路 |
017 | 并发断点调试 JDK新特性 ..... (粗略版已完成) | 解决思路 |
018 | 锁优化 ..... (有待分析) | 解决思路 |
019 | 数据伪共享 false—shareing disruptor前传..... ) | 解决思路 |
020 | 原子性小讲 | 解决思路 |
更新此问题的出发点是 **disruptor框架和百度的分布式id生成策略**
https://github.com/baidu/uid-generator/blob/master/README.zh_cn.md
ID | Problem | Article |
---|---|---|
001 | 一共有几类线程安全的问题 | 解决思路 |
002 | 哪些场景需要额外注意线程安全问题 | 解决思路 |
003 | 多线程切换上下文 | 解决思路 |
004 | 死锁特辑 | 解决思路 |
ID | Problem | Article |
---|---|---|
001 | JDK 线程池高度解析(大致了解版本) | 解决思路 |
002 | 线程池是什么 | 解决思路 |
002-1 | 多次创建线程的劣势 | 解决思路 |
003 | 什么时候使用线程池 | 解决思路 |
004 | 线程池的优势 | 解决思路 |
005 | Executor框架 | 解决思路 |
006 | 线程池的重点属性 | 解决思路 |
007 | 线程池的具体实现 | 解决思路 |
008 | 线程池的创建 | 解决思路 |
009 | 线程池参数解释 | 解决思路 |
010 | 线程池监控 | 解决思路 |
011 | 线程池的源码分析 | 解决思路 |
011-1 | execute方法 | 解决思路 |
011-2 | addWorker方法 | 解决思路 |
011-3 | Worker类 | 解决思路 |
011-4 | runWorker方法 | 解决思路 |
011-5 | getTask方法 | 解决思路 |
011-6 | processWorkerExit方法 | 解决思路 |
011-7 | 小结 | 解决思路 |
012 | 手写线程池代码 | 解决思路 |
https://github.com/qiurunze123/threadandjuc/blob/master/docs/threadinterview.md
千岩万壑不辞劳 远看方知出处高 溪涧岂能留得住 终归大海做波涛 2019/9/24