我理解的进程和线程的区别

Review:

我理解的进程和线程的区别,不对的大家请指正

1、进程是系统资源分配的最小单位,线程不是;

2、线程必须依赖进程存在,进程不需要;

3、线程之间共享内存空间,进程之间不共享,但是进程有自己丰富的通信方式;

多线程共存于应用程序中是现代操作系统中的基本特征和重要标志

用过UNIX操作系统的读者知道进程,在UNIX操作系统中,每个应用程序的执行都在操作系统内核中登记一个进程标志,操作系统根据分配的标志对应用程序的执行进行调度和系统资源分配,但进程和线程有什么区别呢? 

进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。

进程和线程的区别在于

线程的划分尺度小于进程,使得多线程程序的并发性高。

另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。

线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。

从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区别。

 

进程(Process)是最初定义在Unix等多用户、多任务操作系统环境下用于表示应用程序在内存环境中基本执行单元的概念。以Unix操作系统为例,进程是Unix操作系统环境中的基本成分、是系统资源分配的基本单位。Unix操作系统中完成的几乎所有用户管理和资源分配等工作都是通过操作系统对应用程序进程的控制来实现的。

C、C++、Java等语言编写的源程序经相应的编译器编译成可执行文件后,提交给计算机处理器运行。这时,处在可执行状态中的应用程序称为进程。从用户角度来看,进程是应用程序的一个执行过程。从操作系统核心角度来看,进程代表的是操作系统分配的内存、CPU时间片等资源的基本单位,是为正在运行的程序提供的运行环境。进程与应用程序的区别在于应用程序作为一个静态文件存储在计算机系统的硬盘等存储空间中,而进程则是处于动态条件下由操作系统维护的系统资源管理实体。多任务环境下应用程序进程的主要特点包括: 

     进程在执行过程中有内存单元的初始入口点,并且进程存活过程中始终拥有独立的内存地址空间;

     进程的生存期状态包括创建、就绪、运行、阻塞和死亡等类型;

     从应用程序进程在执行过程中向CPU发出的运行指令形式不同,可以将进程的状态分为用户态和核心态。处于用户态下的进程执行的是应用程序指令、处于核心态下的应用程序进程执行的是操作系统指令。

在Unix操作系统启动过程中,系统自动创建swapper、init等系统进程,用于管理内存资源以及对用户进程进行调度等。在Unix环境下无论是由操作系统创建的进程还要由应用程序执行创建的进程,均拥有唯一的进程标识(PID)。

参考资料:

1、计算机组织与体系结构

2、进程和线程有什么区别?

3、Unix进程揭秘

时间: 2024-10-27 13:33:12

我理解的进程和线程的区别的相关文章

进程与线程的区别

问题描述 请各位大哥大姐们给我说说,进程与线程的区别吧.我都遇到两次啦.每次面试都有这个问题!急求. 解决方案 解决方案二: 解决方案三:进程就是键盘,线程就是按钮....一个键盘有好多按钮,实现不同的功能...如果其中两个按钮一起按就会冲突...如果串线就可能按A得B.........解决方案四:最近cnblogs上有一个讲的解决方案五:引用2楼llxzj60的回复: 进程就是键盘,线程就是按钮....一个键盘有好多按钮,实现不同的功能...如果其中两个按钮一起按就会冲突...如果串线就可能按

进程和线程的区别和关系

问题描述 进程和线程的区别和关系 进程和线程的区别和关系,网上和书上说的都很专业,不是很好理解. 解决方案 进程:一个正在运行的程序就叫一个进程 比如说手机打开的一个应用就是一个进程 多进程:多个程序同时运行 叫多进程 比如手机同时打开这多个程序 听着歌上着QQ 线程:一个程序 或者说 一个进程 都会有一个 或多个线程 比如说听歌 你进应用之后一直在点击听歌 更换模式这些按钮 处理你点击按钮产生的作用的就是线程 你能看见的都是操作都是主线程在完成 你看不见的比如你虽然在听歌 但是歌曲也正在缓存这

进程 线程-进程与线程的区别????

问题描述 进程与线程的区别???? 进程与线程的区别??????????????????????????????????? 解决方案 一个进程可以开辟多个线程,线程是进程的子集 解决方案二: 操作系统将内存资源分配给进程,操作系统在进程下执行线程,一个进程下可以有多个线程.

深入浅析WinForm 进程、线程及区别介绍_实用技巧

一.进程 进程是一个具有独立功能的程序关于某个数据集合的一次运行活动. 它可以申请和拥有系统资源,是一个动态的概念,是一个活动的实体. Process 类,用来操作进程. 命名空间:using System.Diagnostics; Process.Start("calc"); //打开计算器 Process.Start("mspaint"); //打开画图 Process.Start("iexplore" , "http://www.

进程和线程的区别

什么是进程(Process):普通的解释就是,进程是程序的一次执行,而什么是线程(Thread),线程可以理解为进程中的执行的一段程序片段.在一个多任务环境中下面的概念可以帮助我们理解两者间的差别:进程间是独立的,这表现在内存空间,上下文环境:线程运行在进程空间内.一般来讲(不使用特殊技术)进程是无法突破进程边界存取其他进程内的存储空间:而线程由于处于进程空间内,所以同一进程所产生的线程共享同一内存空间. 同一进程中的两段代码不能够同时执行,除非引入线程.线程是属于进程的,当进程退出时该进程所产

嵌入式-进程,线程还有后台有哪些区别?

问题描述 进程,线程还有后台有哪些区别? 各位大神,请问后台,线程以及进程之间的区别是什么?各位大神,请问后台,线程以及进程之间的区别是什么?各位大神,请问后台,线程以及进程之间的区别是什么?各位大神,请问后台,线程以及进程之间的区别是什么? 解决方案 先讲后台: 一个线程是前台线程还是后台线程可由它的IsBackground属性来决定.前台线程和后台线程.这两者的区别就是:应用程序必须运行完所有的前台线程才可以退出:而对于后台线程,应用程序则可以不考虑其是否已经运行完毕而直接退出,所有的后台线

进程与线程的关系和区别 CPU调度简介

进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位. 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位. 进程和线程的关系: (1)一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程. (2)资源分配给进程,同一进程的所有线程共享该进程的所有资源. (3)处理机分给线程,即真正在处理机上运行的是线程. (4)线程在执行过程中,需要协作同步.不同进程的线程间要利用消息通信的办法实现同步.

CPU进程与线程的关系和区别

  进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位. 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位. 进程和线程的关系: (1)一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程. (2)资源分配给进程,同一进程的所有线程共享该进程的所有资源. (3)处理机分给线程,即真正在处理机上运行的是线程. (4)线程在执行过程中,需要协作同步.不同进程的线程间要利用消息通信的办法实现同

我有点不太懂,进程和线程的有什么样的区别?

问题描述 我有点不太懂,进程和线程的有什么样的区别?还请哪为大虾帮帮忙.... 解决方案 解决方案二:进程包含线程解决方案三:那么懒,自己不会baidu?解决方案四:线程可以说是进程的最小组成单位.通俗的说法解决方案五:进程可以理解为一个物理概念,它里面包含了该程序要执行所需的资源,而线程是用来执行进程的,一个进程里面最少有一个线程,但也可以有很多线程解决方案六:一对多的关系吧解决方案七:如果想深入学习进程和线程的话,可以看操作系统方面的书解决方案八:线程是一种操作系统对象,代表着一个进程中要被