绕来绕去,看完ES 之后还是决定来 重新看并发编程
基础概念:
CPU核心数和线程数之间的关系:
核心数:线程数 = 1:1
在Inter推出超线程技术之后比例变成了 1:2
CPU时间片轮转机制:
虽说线程的数量是有限的,但是我们平时在用的过程中并没有,发现线程受限制,这就涉及到CPU的时间片轮转机制了,也称为RR调度
就是CPU会为不同的线程分配不同大小的执行时间片,当线程执行完毕,或者时间片到时间,或者阻塞,就会进行CPU上下文切换,上下文切换也是需要时间的,需要保存上一个线程的寄存器的值,内存镜像等参数
一次上下文切换大概需要花费5000-20000个时钟周期,无法自己控制,由CPU自行控制
有时候我们发现多线程还不如单线程运行快,就是在这里影响了性能,所以说开发时,尽量减少上下文切换
进程和线程:
进程:程序运行资源分配最小单位,进程内部有多个线程,会共享这个进程的资源
线程:CPU调度的最小单位,必须依赖进程而存在
并行与并发:
并行:同一时刻,可以同时处理事情的能力
并发:与时间单位相关,在单位时间内可以处理事情的能力
高并发编程的意义 好处和注意事项
好处:充分利用CPU资源,加快用户的响应时间,程序模块化,异步化
问题:
线程共享资源存在冲突
容易导致死锁
启用太多的线程,计算机可能宕机
作者:彼岸舞
时间:2020 914
内容关于:并发编程
本文来源于网络,只做技术分享,一概不负任何责任