什么是高并发:
并发:
一段时间内同时运行多个任务,称之为并发.
高并发:
则顾名思义,就是在一段时间类需要进行大量的任务,称之为高并发.
如何解决高并发?
高并发简而言之就是任务多,任务量大,耗时长, 而要解决大量的任务量的话,耗费大量的时间下去自然终会解决,但是这不是我们想要的结果,
那么比较符合我们需求的方向有:
1) 缩短任务执行任务的耗时,
2) 尽量避免耗时任务的执行
3) 增加执行任务的执行者
其中1) 缩短任务的耗时,与2) 尽量避免任务的执行,这两者是在业务后期优化中,很实用的两个点,但是这个是根据业务来的,所以并不通用.
那么此处就考虑 3) 增加任务执行者, 而任务的执行人在程序的世界里, 毫无疑问就是CPU了,而CPU没有数据,数据都在硬盘里面
因为CPU的运行速度甩硬盘几条街,计算机中有内存的出现,而如何划分内存这就是进程的事情了,但是由于进程的创建与销毁都非常的消耗资源,由于经过优化后就出现了,相较于进程而言消耗更小的线程;
那么此时我们的执行者就是线程了.
且就以高级编程语言java为例, 在java中提供了 开启线程,中断线程的语法.根据语法让我们从更高的层面,操作 "操作系统"的线程资源加速任务的执行
线程:
使用线程前就必须得了解线程. 那么从以下几个方面入手:
- 线程本身
- 使用场景
线程本身:
生命周期:
1) 创建
2) 运行
3) 阻塞
4) 睡眠
5) 定时睡眠
6) 死亡
如果映射到人身上就是
1) 出生
2) 工作
3) 等待工作
4) 植物人状态
5) 平时睡觉
6) 死掉
使用场景:
如果公司招聘一般,只有当公司业务量上去之后,才会招聘对应的人数,那么招聘进来之后肯定是做事情,工作,业务的.
只是与人类不同的是在线程中没有职业划分,也无需hr来筛选
简而言之 使用时机就是大量业务,如果是为了未来的业务量那就是设计,如果是为了已经有的业务量那就是升级