程序、进程和线程的关系
2015-12-16 16:20
465 查看
程序、进程与线程的关系
程序(Program或Procedure,港台称之为程式)是一组用计算机语言编写的命令序列的集合。程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种执行的「程序」就称之为进程。线程是系统分配处理器时间资源的基本单元。每启动一个程序,就至少启动了一个进程。进程(Process,台湾译作行程)是计算机中已运行程序的实体。程序本身只是指令的集合,进程才是程序(那些指令)的真正运行。进程本身不会运行,是线程的容器。线程不能单独执行,必须组成进程。一个程序至少有一个进程,一个进程至少有一个线程。
线程(Thread,台湾称执行绪)是进程中某个单一顺序的控制流,指运行中的程序的调度单位。在单个程序中同时运行多个线程完成不同的工作,称为多线程。多线程主要是为了节约CPU时间。
在任务管理器中查看进程和线程
线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源(线程的运行中需要使用计算机的内存资源和CPU),但它可与同属一个进程的其它线程共享进程所拥有的全部资源。通常在一个进程中可以包含若干个线程,它们可以利用进程所拥有的资源。一个线程可以创建和撤销另一个线程,同一个进程中的多个线程之间可以并发执行。
注意:
(1)程序是指令的有序集合,其本身没有任何运行的含义,是一个静态的概念;
进程是程序在处理机上的一次执行过程,是运行中的程序,是一个动态的概念。
(2)程序可作为一种软件材料长期存在;
进程是有一定生命周期的,是暂时存在的。
(3)同一程序可以对应多个进程。也就是说同一程序同时运行于若干个数据集合上,它属于若干个不同的进程。但是程序并不能独立运行,作为资源分配和独立运行的基本单元都是进程。
相关文章推荐
- hibernate中openSession()跟getCurrentSession()方法之间的区别
- WCF视频学习网址
- tcxtreelist 展示图片 图像
- 老李分享:《Linux Shell脚本攻略》 要点(六)下
- 带头尾节点的双向循环链表
- 老李分享:《Linux Shell脚本攻略》 要点(六)上
- Android中Canvas类的介绍
- leetcode -- N-Queens I&II,经典回溯,再看
- opencv是什么
- CNN卷积神经网络应用于人脸识别(详细流程+代码实现)
- 如何修改IE浏览器文本模式
- 民意调查Django实现(四)
- Java工程师被阿里拒绝的理由都有哪些?
- spring 注意点
- js获取鼠标位置的各种方法
- 配置Server.xml
- 使用IScroll5实现滚动
- 老李分享:《Linux Shell脚本攻略》 要点(五)
- 官网 下载webrtc需求软件准备
- 面试题20:树的子结构(offer)