线程的基础概念与理论

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

基础概念:

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

    核心数:线程数 = 1:1

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

  CPU时间片轮转机制:

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

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

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

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

  进程和线程:

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

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

  并行与并发:

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

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

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

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

    问题:

      线程共享资源存在冲突

      容易导致死锁

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

作者:彼岸舞

时间:2020\09\14

内容关于:并发编程

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

    

    

posted @   彼岸舞  阅读(137)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
点击右上角即可分享
微信分享提示