专栏中心

EEPW首页 > 专栏 > 任务、进程和线程有何不同?

任务、进程和线程有何不同?

发布人:patton 时间:2008-09-24 来源:工程师 发布文章

问:任务、进程和线程有何不同?

答:三个词中,任务(task)是最抽象的,是一个一般性的术语,指由软件完成的一个活动。一个任务既可以是一个进程,也可以是一个线程。简而言之,它指的是一系列共同达到某一目的的操作。例如,读取数据并将数据放入内存中。这个任务可以作为一个进程来实现,也可以作为一个线程(或作为一个中断任务)来实现。

  进程(process)常常被定义为程序的执行。可以把一个进程看成是一个独立的程序,在内存中有其完备的数据空间和代码空间。一个进程所拥有的数据和变量只属于它自己。

  线程(tread)则是某一进程中一路单独运行的程序。也就是说,线程存在于进程之中。一个进程由一个或多个线程构成,各线程共享相同的代码和全局数据,但各有其自己的堆栈。由于堆栈是每个线程一个,所以局部变量对每一线程来说是私有的。由于所有线程共享同样的代码和全局数据,它们比进程更紧密,比单独的进程间更趋向于相互作用,线程间的相互作用更容易些,因为它们本身就有某些供通信用的共享内存:进程的全局数据。

  一个进程和一个线程最显著的区别是:线程有自己的全局数据。线程存在于进程中,因此一个进程的全局变量由所有的线程共享。由于线程共享同样的系统区域,操作系统分配给一个进程的资源对该进程的所有线程都是可用的,正如全局数据可供所有线程使用一样。

  在20世纪60年代初期,麻省理工学院的MULTICS操作系统中首先引入“进程”这个概念,IBM公司的CTSS/360系统中则使用“任务”这个术语。“线程”概念的出现就更晚了。

专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词:

相关推荐

苹果首款自研AI服务器芯片Baltra曝光

8051的内核(vhdl)

资源下载 2007-02-09

SK海力士开始出货业界首款321层QLC固态硬盘,4月向戴尔供货

2026-04-09

去中心化训练助力解决 AI 能耗难题

2026-04-09

飞思卡尔血糖/血压计演示

东风车规级MCU芯片DF30推进量产上车

瑞萨数字仪表解决方案—SH7264

视频 2009-07-30

芯海科技锂离子电池系统的BMS芯片CBM9680

飞思卡尔的家用便携式医疗应用

AI 推动光互连技术应用,实现 GPU 可扩展通信

2026-04-09

AI 加速器开启集成电路测试新时代

2026-04-09

2440原理图

资源下载 2007-02-09

面向严苛环境的高可靠性电源产品系列

2026-04-09

积塔半导体与英飞凌签署项目合作协议

2026-04-09

瑞萨汽车导航解决方案—SH7764

视频 2009-07-30

纳芯微PrimeDrive隔离栅极驱动发布小封装版本

飞思卡尔心律监护演示

更多 培训课堂
更多 焦点
更多 视频

技术专区