`
virtual_function
  • 浏览: 127620 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

进程与线程的区别联系

阅读更多

对于线程,进程的概念一直都是比较模糊,最近整理了一下。总结起来就是,线程是进程的一部分,进程是程序的一部分。这个说法不准确,但是可以指出期间的差别;

 

进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位.线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.

一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行。线程的引入:例如,有一个Web服务器要进程的方式并发地处理来自不同用户的网页访问请求的话,可以创建父进程和多个子进程的方式来进行处理,但是创建一个进程要花费较大的系统开销和占用较多的资源。除外,这些不同的用户子进程在执行的时候涉及到进程上下文切换,上下文切换是一个复杂的过程。所以,为了减少进程切换和创建的开销,提高执行效率和节省资源,人们在操作系统中引入了"线程(thread)"的概念。

进程的作用和定义:进程是为了提高CPU的执行效率,减少因为程序等待带来的CPU空转以及其他计算机软硬件资源的浪费而提出来的。进程是为了完成用户任务所需要的程序的一次执行过程和为其分配资源的一个基本单位,是一个具有独立功能的程序段对某个数据集的一次执行活动。

线程和进程的区别:
1、 线程是进程的一部分,所以线程有的时候被称为是轻权进程或者轻量级进程。
2、 一个没有线程的进程是可以被看作单线程的,如果一个进程内拥有多个进程,进程的执行过程不是一条线(线程)的,而是多条线(线程)共同完成的。
3、 系统在运行的时候会为每个进程分配不同的内存区域,但是不会为线程分配内存(线程所使用的资源是它所属的进程的资源),线程组只能共享资源。那就是说,出了CPU之外(线程在运行的时候要占用CPU资源),计算机内部的软硬件资源的分配与线程无关,线程只能共享它所属进程的资源。
4、 与进程的控制表PCB相似,线程也有自己的控制表TCB,但是TCB中所保存的线程状态比PCB表中少多了。
5、 进程是系统所有资源分配时候的一个基本单位,拥有一个完整的虚拟空间地址,并不依赖线程而独立存在。
 
进程与程序的区别:
程序是一组指令的集合,它是静态的实体,没有执行的含义。而进程是一个动态的实体,有自己的生命周期。一般说来,一个进程肯定与一个程序相对应,并且只有一个,但是一个程序可以有多个进程,或者一个进程都没有也可以只有一个进程。除此之外,进程还有并发性和交往性。简单地说,进程是程序的一部分,程序运行的时候会产生进程。总结:线程是进程的一部分,进程是程序的一部分。

前一句说的不太准确,线程也有自己的资源,比如栈,私有数据等等。说他使用而不拥有资源指的是使用的是进程的打开文件句柄,进程的全局数据,进程的地址空间等等,这些都属于进程,而不属于线程,进程内个线程共享。

进程切换比线程切换开销大是因为进程切换时要切页表,而且往往伴随着页调度,因为进程的数据段代码段要换出去,以便把将要执行的进程的内容换进来。本来进程的内容就是线程的超集。而且线程只需要保存线程的上下文(相关寄存器状态和栈的信息)就好了,动作很小。

分享到:
评论
2 楼 znfsw1111 2013-09-26  
谢谢分享。
1 楼 xieqixiang 2013-06-03  
谢谢你的总结。。。

相关推荐

    进程与线程的区别和联系

    可以了解进程与线程的区别和联系,对操作系统有更深的了解。

    进程与线程的区别

    进程与线程的区别 - 博客园.mht 进程与线程的区别 - 博客园.mht 进程与线程的区别 - 博客园.mht

    JAVA线程与进程的区别

    JAVA线程与进程的区别JAVA线程与进程的区别

    进程和线程有什么区别?

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

    进程与线程的生动形象理解

    该文档为进程与线程的生动详细地理解,个人认为讲的非常好。形象生动。

    线程和进程的区别,详细解释

    线程进程的区别于联系,详细介绍.希望对大家有用。如果有不足的地方,麻烦留言。

    进程和线程的主要区别

    进程和线程的主要差别在于它们是不同的操作系统资源管理方式。进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。

    进程和线程的区别与联系

    程序:一段静态的代码,一组指令的有序集合,它本身没有任何运行的含义,它只是一个静态... 进程:是程序的一次动态执行,它对应着从代码加载,执行至执行完毕的一个完整的过程,是一个动态的实体,它有自己的生命周期。

    进程与线程 进程与线程

    为了描述程序在并发执行时对系统资源的共享,我们需要一个描述程序执行时动态特征的概念,这就是进程。在本章中,我们将讨论进程概念、进程控制和进程间关糸.

    进程和线程之间的关系

    详细讲解进程和线程之间的区别,方便初学者能更深透的理解

    C++进程与线程详解

    鉴于网上和一些教材上对进程和线程说明不是很全面,在对这方面知识学习之后,进行了总结,对操作系统中进程与线程的关系和一些应用进行了整理,希望对有这方面需要的同道中人有所帮助。

    c++进程与线程

    c++进程与线程,好东西,可以看看学习之用,值得看看!

    windows的进程与线程

    讲解windows下的进程与线程之间的关系和API函数的基本操作

    进程与线程的管理 .PPT 进程、线程和优先级

    进程、线程和优先级 工作线程和用户界面线程 线程同步 线程通讯

    进程与线程的一个简单解释

    进程与线程的一个简单解释,教你简单区分程序设计过程中的进程与线程问题,有助于你对多线程编程的理解

    操作系统中的进程与线程

    详细的介绍线程与进程的关系,区别以及联系,线程的通讯方式,进程的通讯方式,能够让你彻底的了解进程与线程

    进程线程及死锁

    通过观察、分析实验现象,深入理解线程及线程在调度执行和内存空间等方面的特点,并掌握线程与进程的区别。

    操作系统实验报告——线程与进程同步

    操作系统实验报告,原创,写得很认真的。 内容为进程与线程同步,有流程图及源代码等

    进程与线程_动力节点Java学院整理.

    进程与线程,本质意义上说, 是操作...同时由于 Java 的封装也隐藏了底层的一些概念和可操作性,本文还对 Java 进程线程和本地进程线程做了一些简单的比较,列出了使用 Java 进程、线程的一些限制和需要注意的问题。

    linux进程和线程编程

    linux 进程和线程编程 pipe --原始管道 命名管道 消息队列 信号量 内存共享 线程编程

Global site tag (gtag.js) - Google Analytics