高并发和多线程”总是被一起提起,给人感 zhi 觉两者好像相等,实则 高并发 ≠ 多线程
多线程是完成任务的一种方法,高并发是系统运行的一种状态,通过多线程有助于系统承受高并发状态的实现。
高并发是一种系统运行过程中遇到的一种“短时间内遇到大量操作请求”的情况,主要发生在 web 系统集中大量访问或者 socket 端口集中性收到大量请求(例如:12306 的抢票情况;天猫双十一活动)。该情况的发生会导致系统在这段时间内执行大量操作,例如对资源的请求,数据库的操作等。如果高并发处理不好,不仅仅降低了用户的体验度(请求响应时间过长),同时可能导致系统宕机,严重的甚至导致 OOM 异常,系统停止工作等。如果要想系统能够适应高并发状态,则需要从各个方面进行系统优化,包括,硬件、网络、系统架构、开发语言的选取、数据结构的运用、算法优化、数据库优化……而多线程只是其中解决方法之一。
多线程高并发思维导图
下面给大家分享出这份由大佬编写的《多线程高并发》最新版笔记详解!(+配套视频)
第一节:线程的基本概念
多线程与高并发大概讲六大块:
-
第一:基本的概念
-
第二:jUC 同步工具
-
第三:同步容器
-
第四:线程池
-
第五:高频面试加分项
-
第六: Disruptor
我们先说一下为什么要讲多线程和高并发?
原因是,你想拿到一个更高的薪水,在面试的时候呈现出了两个方向的现象:
第一个是上天
-
项目经验
-
高并发 缓存 大流量 大数据量的架构设计
第二个是入地
-
各种基础算法,各种基础的数据结构
-
JVM OS 线程 IO 等内容
多线程和高并发,就是入地里面的内容。
第二节: volatile 与 CAS
-
1 :保证线程的可见性
-
2 :禁止指令重新排序
CAS
第三节: Atomi 类和线程同步新机制
-
间歇性复习
第四节: LockSupport、 淘宝面试题与源码阅读方法论
淘宝面试题
-
面试题一
面试题 1 中的 9 个小程序 9 种方案, 5 种技术分别是 volatile、wait()和 notify()、 Semaphore.CountDownLatch、LockSupport ,其中 wait()和 notify()这个方案建议牢牢掌握,其它的可以用作巩固技术。
-
面试题 2
阅读源码的原则
第五节: AQS 源码阅读与强软弱虚 4 种引用以
通过 ReentrantLock 来解读 AQS 源码
为什么是双向链表?
-
ThreadLocal 源码
-
及 ThreadLoca1 原理与源码
-
为什么要用 ThreadLocal ?
-
java 的四种引用:强软弱虚人
-
强引用
-
软引用
第六节:并发容器
容器
第七节:线程池
我怎么定义这一个线程池,这里面的七个参数,
-
●第一个参数 corePoolSoze 核心线程数,
-
●第二个叫 maximumPoolSize 最大线程数,
-
●第三个 keepAliveTime 生存时间
-
●第四个 TimeUnit.SECONDS 生存时间的单位到底是毫秒纳秒还是秒自 已去定义;
-
●第五个是任务队列,就是我们上节课讲的 BlockingQueue ,
-
●第六个是线程工厂
-
●第七个叫拒绝策略,
第八节:线程池与源码阅读
-
线程池 worker 任务单元
-
核心线程执行逻辑 runw orker
第九节: JMH 与 Di srup tor
配套多线程高并发视频
最后
为大家整理了 Java 核心知识点+全套架构师学习资料和视频+一线大厂面试宝典+面试简历模板可以领取+阿里美团网易腾讯等面试题+Spring 源码合集+Java 架构实战电子书供大家学习!需要这份资料的,点击关注,私信我【333】即可获取,或者评论区留下脚印【我爱学习】即可领取