线程的基础概念与理论

2020-09-30 12:04:19 浏览数 (1)

绕来绕去,看完ES 之后还是决定来 重新看并发编程

基础概念:

  CPU核心数和线程数之间的关系:

    核心数:线程数 = 1:1

    在Inter推出超线程技术之后比例变成了 1:2

  CPU时间片轮转机制:

    虽说线程的数量是有限的,但是我们平时在用的过程中并没有,发现线程受限制,这就涉及到CPU的时间片轮转机制了,也称为RR调度

    就是CPU会为不同的线程分配不同大小的执行时间片,当线程执行完毕,或者时间片到时间,或者阻塞,就会进行CPU上下文切换,上下文切换也是需要时间的,需要保存上一个线程的寄存器的值,内存镜像等参数

    一次上下文切换大概需要花费5000-20000个时钟周期,无法自己控制,由CPU自行控制

    有时候我们发现多线程还不如单线程运行快,就是在这里影响了性能,所以说开发时,尽量减少上下文切换

  进程和线程:

    进程:程序运行资源分配最小单位,进程内部有多个线程,会共享这个进程的资源

    线程:CPU调度的最小单位,必须依赖进程而存在

  并行与并发:

    并行:同一时刻,可以同时处理事情的能力

    并发:与时间单位相关,在单位时间内可以处理事情的能力

  高并发编程的意义 好处和注意事项

    好处:充分利用CPU资源,加快用户的响应时间,程序模块化,异步化

    问题:

      线程共享资源存在冲突

      容易导致死锁

      启用太多的线程,计算机可能宕机 

作者:彼岸舞

时间:2020914

内容关于:并发编程

本文来源于网络,只做技术分享,一概不负任何责任

0 人点赞