济南市公众号网站建设,网站建设暨检务公开自查报告,汽车工厂视频网站建设,wordpress xiu5.4高并发中的线程 一切要从CPU说起PC 程序计数器从CPU到操作系统从进程到线程 从这篇开始#xff0c;我将会开启高性能#xff0c;高并发系列#xff0c;本篇是给系列的开篇#xff0c;主要关注 多线程以及线程池。 一切要从CPU说起
你可能会有疑问#xff0c;讲多线程为何… 高并发中的线程 一切要从CPU说起PC 程序计数器从CPU到操作系统从进程到线程 从这篇开始我将会开启高性能高并发系列本篇是给系列的开篇主要关注 多线程以及线程池。 一切要从CPU说起
你可能会有疑问讲多线程为何要从CPU说起了原因很简单在这里没有那些时髦的概念你可以更加清晰的看清问题的本质。
CPU并不知道线程进程之类的概念CPU只知道两件事。 1.从内存中取出指令 2.执行指令然后返回步骤1 你看在这里CPU确实不知道 线程和进程的概念。 接下来的问题是CPU从哪里取出指令呢答案就是 程序计数器 Program Counter 可以理解为内存只不过读取速度更快。 那么程序计数器存放的是什么了答案就是CPU将要执行的下一条指令。 PC 程序计数器
这里我们回答1个问题 PC程序计数器指令设置 PC计数器中的地址是默认自动加1 的这当然是有道理的因为大部分情况下CPU都是一条接一条按顺序执行当遇到 if else 时这种顺序就被打破了那么CPU在执行这类指令时会根据计算结果来动态改变PC 程序计数器中的值这类CPU就可以正确的跳转到需要执行的指令了。 下图我们就分析一下指令的生成原理 从上图我们知道CPU要想执行一个函数我们只需要将函数编译后的第一条指令的地址写入PC 程序计数器就可以了。 从CPU到操作系统
从上一节中我们明白了CPU的工作原理如果我们想让CPU执行某个函数只需要把函数编译后的第一条指令装入PC计数器即可这样即使我们在没有操作系统的支持下也可以让CPU执行程序虽然可行但这也是一个很繁琐的过程。我们至少需要做到
在内存中找到一块大小合适的区域装入程序找到函数的入口设置好PC计数器让CPU开始执行程序。
为了完成上述两个步骤聪明的程序员设计了一个叫 操作系统的程序。
程序从磁盘加载到内存并跑起来叫进程 ProcessCPU执行的第一个函数叫 main函数 上述两个步骤是操作系统的基础。
从进程到线程
我们知道进程无非就是内存中的一段区域这段区域保存了 CPU执行的机器指令以及函数运行时的堆栈信息那么要想让进程运行就需要把main函数的第一条机器指令接入 PC 计数器这样进程就运行起来了。