基础概念
CPU核心数和线程数的关系
多核心:也指单芯片多处理器(CMP),核心思想就是将大规模并行处理器中的SMP(对称多处理器)集成到同一芯片内并执行不同的进程。- 并行处理
多线程:Simultaneous Multithreading。简称SMT。SMT可通过复制处理器上的结构状态,让同一个处理器上的多个线程同步执行并共享处理器的执行资源,可最大限度的实现宽发射、乱序的超标量处理,提高处理器运算部件的利用率,缓和由于数据相关或Cache未命中带来的访问内存延时。
核心数和线程数的关系:一般情况下是1:1的关系,但Intel引入了超核心技术,使核心数和线程数形成1:2的关系,所以Intel处理器的电脑出现了4核八线程、6核12线程等。
CPU时间片轮转机制
一个CPU同一时间只能执行一个线程。但是,我们在实际使用过程中,可以基本无限制的启动线程,即使是在单核CPU上面,而且看起来多个线程是同时执行的,这是为什么呢?这里就运用了CPU的时间片轮转机制
时间片轮转法(RR调度)
根据先进先出原则,排成队列。调度时,将CPU分配给队首进程,让其执行一个时间段(时间片),时间片通常为10~100ms数量级,当执行的时间片用完时,会由计时器发出时钟中断请求,调度程序便根据这个信号中断当前执行的进程,并将它排到队列末尾,然后再把CPU重新分配给当前队列的队首进程,同理如此往复。
时间片大小的取决因素
- 系统对响应时间的要求
- 就绪队列中进程的数目
- 系统的处理能力
相关链接:
什么是进程和线程
进程是程序运行资源分配的最小单位
资源包括:CPU、内存空间、磁盘等,同一进程中的多条线程共享该进程中的全部系统资源,而进程和进程之间是相互独立的。
线程是CPU调度的最小单位,必须依赖进程存活
线程是进程的一个实体(也可以称之为轻量级的进程)
并行和并发
并行:指应用能够同时执行不同的任务。
并发:指应用能够交替执行不同的任务,并发必须跟时间挂钩,也就是说一定时间的并发量
高并发编程的意义、好处和注意事项
高并发的好处
- 充分利用CPU的资源
- 加快响应用户的时间
- 可以使代码模块化、异步化、简单化
高并发需要注意的事项
- 线程之间的安全性
- 线程之间的死循环过程(死锁)
- 线程太多会将服务器资源耗尽,形成死机、宕机(可以通过线程池解决)