并发
1、形容多个任务的执行状态。
2、对并发性的简称。
并行
真正的同时运行---在同一时刻,有多个任务同时执行。
在多核处理器上,有两个线程同时执行同一段代码。
特点
并行一定是并发的
并不一定意味着并发一定要去并行
高并发和多线程
高并发:是一种状态,是指大量的请求到达服务端。
多线程:是一种解决方案,是防止高并发带来的线程安全问题。
高并发并不意味着多线程。
高并发的指标
QPS(Queries Per Second):每秒查询数(请求数)
带宽
PV:综合浏览量(24H)
UV:访问用户数量(去重之后的)
IP和UV的区别
同步与异步、阻塞与非阻塞
同步与异步:被调用者是否主动告诉调用者结果(服务器的行为)
阻塞与非阻塞:线程状态、线程发出的请求
面试常见问题
进程和线程的相同与不同:
1、进程是操作系统资源分配的基本单位,而线程是任务调度和执行的基本单位
2、所处环境:在操作系统中能同时运行多个进程(程序);而在同一个进程(程序)中有多个线程同时执行
3、线程是进程的一部分,所以线程也被称为轻权进程或者轻量级进程。
4、在开销方面:每个进程都有独立的代码和数据空间,程序之间的切换会有较大的开销。
并行与并发的异同:
1、并发:不同的代码块交替执行
2、并行:不同的代码块同时执行
高并发是不是意味着多线程?有什么反例?redis
多线程可以提高程序执行效率,但有没有哪些弊端?
资源消耗、线程安全问题
什么是同步、什么是异步、什么是堵塞、非堵塞?
在单核CPU上运行多线程程序有意义吗?