任务、进程和线程有何不同
来源:互联网 发布:redis 数据存储位置 编辑:程序博客网 时间:2024/04/29 19:56
任务、进程和线程有何不同
三个词中,任务(task)是最抽象的,是一个一般性的术语,指由软件完成的一个活动。一个任务既可以是一个进程,也可以是一个线程。简而言之,它指的是一系列共同达到某一目的的操作。例如,读取数据并将数据放入内存中。这个任务可以作为一个进程来实现,也可以作为一个线程(或作为一个中断任务)来实现。
进程(process)常常被定义为程序的执行。可以把一个进程看成是一个独立的程序,在内存中有其完备的数据空间和代码空间。一个进程所拥有的数据和变量只属于它自己。
线程(tread)则是某一进程中一路单独运行的程序。也就是说,线程存在于进程之中。一个进程由一个或多个线程构成,各线程共享相同的代码和全局数据,但各有其自己的堆栈。由于堆栈是每个线程一个,所以局部变量对每一线程来说是私有的。由于所有线程共享同样的代码和全局数据,它们比进程更紧密,比单独的进程间更趋向于相互作用,线程间的相互作用更容易些,因为它们本身就有某些供通信用的共享内存:进程的全局数据。
一个进程和一个线程最显著的区别是:线程有自己的全局数据。线程存在于进程中,因此一个进程的全局变量由所有的线程共享。由于线程共享同样的系统区域,操作系统分配给一个进程的资源对该进程的所有线程都是可用的,正如全局数据可供所有线程使用一样。
- 任务、进程和线程有何不同
- encodeURI和encodeURIComponent有何不同?
- 工作流和BPM有何不同?
- 绘画和平面设计有何不同
- getColumnIndex() 和 getColumnIndexOrThrow() 有何不同?
- strcpy和memcpy有何不同
- [iOS] stringWithFormat 和 initWithFormat 有何不同?
- input和raw_input有何不同?
- iOS stringWithFormat 和 initWithFormat 有何不同?
- [iOS] stringWithFormat 和 initWithFormat 有何不同?
- Caffe2和Caffe有何不同?
- caffe2 和 caffe 有何不同
- 程序和设计有何不同
- 程序和软件有何不同
- 程序和软件有何不同
- 1.4 程序和软件有何不同?
- Caffe2和Caffe有何不同?
- java-源码解读-线程池提交之execute和submit有何不同
- 不為別人的眼光 而 生存
- 推荐通用图模型工具包pymc
- DEPHI学习例程
- asterisk卡常见问题(收集整理)
- scipy.stats包简单教程
- 任务、进程和线程有何不同
- oper tools教程 订货和进货
- 个人简历词汇
- Visual Studio起始页的"最近的项目"不显示最
- javascript中三个等号的意思
- dos大全
- 修理好我的U盘
- C 中 __int64用法
- 寻找古老的爱情