如何提高网站的搜索排名,网站策划中规划预测怎们做,推广标题怎么写,深圳建设工程交易服务网官网龙岗目录 
进程 
线程 
线程的串行 
区别 
多线程 进程 
是指计算机中已执行的程序#xff0c;曾经是分时系统的基本运作单位在面向进程设计的系统#xff08;如早期的UNIX#xff0c;Linux 2.4及更早的版本#xff09;中#xff0c;是程序的基本执行实体在面向线程设计的系统…目录 
进程 
线程 
线程的串行 
区别 
多线程 进程 
是指计算机中已执行的程序曾经是分时系统的基本运作单位在面向进程设计的系统如早期的UNIXLinux 2.4及更早的版本中是程序的基本执行实体在面向线程设计的系统如当代多数操作系统、Linux 2.6及更新的版本中进程本身不是基本执行单位而是线程的容器程序本身只是指令、数据及其组织形式的描述相当于一个名词进程才是程序那些指令和数据的真正执行实例可以想像说是现在进行式若干进程有可能与同一个程序相关系且每个进程皆可以同步循序或异步平行的方式独立执行所以是在操作系统中运行的一个应用程序比如同时打开QQWeChat操作系统就会分别启动2个进程每个进程之间是独立的每个进程均运行在其专用且受保护的内存空间内在Windows中可以通过任务管理器查看正在运行的进程 
进程是一种抽象的概念从来没有统一的标准定义看一般由程序、数据集合和进程控制块三部分组成 
程序用于描述进程要完成的功能是控制进程执行的指令集数据集合是程序在执行时所需要的数据和工作区程序控制块包含进程的描述信息和控制信息是进程存在的唯一标志 
线程 
进程是操作系统资源分配的基本单位而线程是任务调度和执行的基本单位线程 也被称为 轻量级进程是程序执行流程的最小单元一个标准的线程由 线程ID、当前指令指针PC、寄存器集合 和 堆栈 组成通常来说一个进程由一个到多个线程组成各个线程之间共享程序的内存空间包括代码段、数据段、堆等以及一些进程资源如打开文件和信号1个进程要想执行任务必须得有线程每1个进程至少要有1个线程一个进程的所有任务都在线程中执行比如使用酷狗播放音乐使用迅雷下载文件都需要在线程中执行 
线程的串行 
1个线程中任务的执行是串行的如果要在1个线程中执行多个任务那么只能一个一个地按顺序执行这些任务在同一时间内1个线程只能执行1个任务比如在1个线程中下载3个文件分别是文件A文件B文件C 
区别 
本质区别进程是操作系统资源分配的基本单位而线程是任务调度和执行的基本单位在开销方面每个进程都有独立的代码和数据空间程序上下文程序之间的切换会有较大的开销线程可以看做轻量级的进程同一类线程共享代码和数据空间每个线程都有自己独立的运行栈和程序计数器PC线程之间切换的开销小所处环境在操作系统中能同时运行多个进程程序而在同一个进程程序中有多个线程同时执行通过CPU调度在每个时间片中只有一个线程执行内存分配方面系统在运行的时候会为每个进程分配不同的内存空间而对线程而言除了CPU外系统不会为线程分配内存线程所使用的资源来自其所属进程的资源线程组之间只能共享资源包含关系没有线程的进程可以看做是单线程的如果一个进程内有多个线程则执行过程不是一条线的而是多条线线程共同完成的线程是进程的一部分所以线程也被称为轻权进程或者轻量级进程 
举个例子进程火车线程车厢 
线程在进程下行进单纯的车厢无法运行一个进程可以包含多个线程一辆火车可以有多个车厢不同进程间数据很难共享一辆火车上的乘客很难换到另外一辆火车比如站点换乘同一进程下不同线程间数据很易共享A车厢换到B车厢很容易进程要比线程消耗更多的计算机资源采用多列火车相比多个车厢更耗资源进程间不会相互影响一个线程挂掉将导致整个进程挂掉一列火车不会影响到另外一列火车但是如果一列火车上中间的一节车厢着火了将影响到所有车厢 
多线程 
1个进程中可以开启多个线程所有线程可以并行同时执行不同的任务多线程技术可以提高程序的执行效率比如同时开启3个线程分别下载3个文件 
多线程的原理现代计算机系统可在同一段时间内以进程的形式将多个程序加载到存储器中并借由时间共享或称时分复用以在一个处理器上表现出同时平行性执行的感觉即同一时间CPU的1个核心只能处理1个线程多线程并发同时执行其实是CPU快速地在多个线程之间调度切换 
如果CPU调度线程的速度足够快就造成了多线程并发执行的假象同样的使用多线程技术的操作系统或计算机体系结构同样程序的平行线程可在多CPU主机或网络上真正同时执行在不同的CPU上使用多线程的原因某个操作可能会陷入长时间的等待等待的线程会进入睡眠状态无法继续执行多线程执行可以有效利用等待时间典型的例子是等待网络响应这可能需要花费数秒甚至数十秒某个操作常常是计算会消耗大量的时间如果只有一个线程程序和用户之间的交互就会中断多线程可以让一个线程负责交互另一个负责计算程序逻辑本身就要求兵法操作例如一个多任务下载软件多CPU或者多核计算机本身具备同时执行多个线程的能力因此单线程程序无法全面发挥计算机的全部计算性能相对于多进程应用多线程在数据共享方面的效率要高很多