进程与线程_进程与线程的区别 - CSDN
精华内容
参与话题
  • 进程与线程的区别(面试题)

    万次阅读 多人点赞 2018-08-28 20:46:55
    进程与线程的区别 进程是资源分配最小单位,线程是程序执行的最小单位; 进程有自己独立的地址空间,每启动一个进程,系统都会为其分配地址空间,建立数据表来维护代码段、堆栈段和数据段,线程没有独立的地址空间...

    进程与线程的区别

    1. 进程是资源分配最小单位,线程是程序执行的最小单位;

    2. 进程有自己独立的地址空间,每启动一个进程,系统都会为其分配地址空间,建立数据表来维护代码段、堆栈段和数据段,线程没有独立的地址空间,它使用相同的地址空间共享数据;

    3. CPU切换一个线程比切换进程花费小;

    4. 创建一个线程比进程开销小;

    5. 线程占用的资源要⽐进程少很多。

    6. 线程之间通信更方便,同一个进程下,线程共享全局变量,静态变量等数据,进程之间的通信需要以通信的方式(IPC)进行;(但多线程程序处理好同步与互斥是个难点)

    7. 多进程程序更安全,生命力更强,一个进程死掉不会对另一个进程造成影响(源于有独立的地址空间),多线程程序更不易维护,一个线程死掉,整个进程就死掉了(因为共享地址空间);

    8. 进程对资源保护要求高,开销大,效率相对较低,线程资源保护要求不高,但开销小,效率高,可频繁切换;

    展开全文
  • 进程线程

    2019-01-29 13:23:03
    1.什么是进程 狭义:进程是正在运行的程序实例 广义:进程是一个具有独立功能的程序关于某个数据集合的一次运行活动,是系统进行资源分配和调度的基本单位 进程的概念要注意两点: 进程是一个实体。每一个进程都有它...

    1.什么是进程

    狭义:进程是正在运行的程序实例

    广义:进程是一个具有独立功能的程序关于某个数据集合的一次运行活动,是系统进行资源分配和调度的基本单位

    进程的概念要注意两点:

    1. 进程是一个实体。每一个进程都有它自己的独立地址空间
    2. 进程是一个“执行中的程序”。只有当处理器执行这个程序时,它成为活动的实体

    2.什么是线程

           线程是进程中的一个实体,是CPU调度的基本单位,只拥有在运行中必不可少的资源,但它可与同属一个进程的其他线程共享所拥有的资源。

    3.线程和进程的关系

    线程是进程的一个实体,一个进程可以拥有多个线程。

    4.进程和线程的区别

    (1) 地址空间:同一进程的所有线程共享本进程的地址空间,不同进程之间的地址空间是相互独立的。
    (2) 资源拥有:同一进程内的线程共享本进程的资源如:内存、I/O,CPU等,不同的进程资源相互独立。
    (3) 健壮性:一个进程崩溃后,不会对其他进程产生影响,但是一个线程崩溃后,会终结整个进程。所以多进程要比多线程健壮。
    (4) 线程切换比进程切换消耗的资源更少、速度更快。
    (5) 线程是CPU调度的基本单位,进程是系统资源分配的基本单位。

    展开全文
  • 进程线程的深入理解

    万次阅读 多人点赞 2019-04-25 00:14:40
    进程线程的深入理解精确概括进程线程的区别 既然要谈区别,那么首先需要理解什么是进程线程。 之前,我读到一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂。 1.计算机的核心是CPU,它承担了所有的...

    进程和线程的深入理解


    下面是抽象类比:

    单CPU:一台单核处理器计算机 = 一个车间;
    多CPU:一台多核处理器计算机 = 一座工厂;

    进程:一个车间 = 一个进程; (即一个运行的程序)
    多进程:一座工厂可以同时运行多个车间;
    CPU和进程单CPU只能同时运行单个进程,多CPU可以同时运行多个进程

    线程:车间内一个工人 = 一个线程;
    进程与线程一个进程可以包括多个线程

    线程间内存共享:车间的空间是工人们共享的,比如许多房间是每个工人都可以进出的。
    一个进程的内存空间是共享的,每个线程都可以使用这些共享内存

    内存安全:可是,每个车间容纳大小不同,有的最多只能容纳一个人。车间人满的时候,其他人就进不去了。
    一个线程使用某些共享内存时,其他线程必须等它结束,才能使用这一块内存。

    互斥锁:一个防止他人进入的简单方法,就是门口加一把锁。先到的人锁上门,后到的人看到上锁,就在门口排队,等锁打开再进去。
    这就叫"互斥锁"–Mutex,防止两个线程同时读写某一块内存区域

    信号量:这时的解决方法,就是在门口挂n把钥匙。进去的人就取一把钥匙,出来时再把钥匙挂回原处。后到的人发现钥匙架空了,就知道必须在门口排队等着了。
    这种做法叫做"信号量"(Semaphore),用来保证多个线程不会互相冲突

    锁和信号量:不难看出,互斥锁是信号量的一种特殊情况(n=1时)。也就是说,完全可以用后者替代前者。但是,因为mutex较为简单,且效率高,所以在必须保证资源独占的情况下,还是采用这种设计。

    操作系统的资源分配与调度逻辑

    • 以多进程形式,允许多个任务同时运行;
    • 以多线程形式,允许单个任务分成不同的部分运行;
    • 提供协调机制,一方面防止进程之间和线程之间产生冲突,另一方面允许进程之间和线程之间共享资源。

    下面是严谨的解释:

    进程

    进程是程序的一次执行过程,是一个动态概念,是程序在执行过程中分配和管理资源的基本单位,每一个进程都有一个自己的地址空间,至少有 5 种基本状态,它们是:初始态,执行态,等待状态,就绪状态,终止状态。

    线程

    线程是CPU调度和分派的基本单位,它可与同属一个进程的其他的线程共享进程所拥有的全部资源。

    进程和线程的关系

    线程是进程的一部分
    一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程

    进程和线程的区别

    理解它们的差别,我从资源使用的角度出发。(所谓的资源就是计算机里的中央处理器,内存,文件,网络等等)

    根本区别:进程是操作系统资源分配的基本单位,而线程是任务调度和执行的基本单位

    开销方面:每个进程都有独立的代码和数据空间(程序上下文),进程之间切换开销大;线程可以看做轻量级的进程,同一类线程共享代码和数据空间,每个线程都有自己独立的运行栈和程序计数器(PC),线程之间切换的开销小

    所处环境:在操作系统中能同时运行多个进程(程序);而在同一个进程(程序)中有多个线程同时执行(通过CPU调度,在每个时间片中只有一个线程执行)

    内存分配:系统为每个进程分配不同的内存空间;而对线程而言,除了CPU外,系统不会为线程分配内存(线程所使用的资源来自其所属进程的资源),线程组之间只能共享资源

    包含关系:线程是进程的一部分,所以线程也被称为轻权进程或者轻量级进程

    展开全文
  • 进程线程的主要区别(总结)

    万次阅读 多人点赞 2018-06-13 10:11:52
    根本区别:进程是操作系统资源分配的基本单位,而线程是任务调度和执行的基本单位在开销方面:每个进程都有独立的代码和数据空间(程序上下文),程序之间的切换会有较大的开销;线程可以看做轻量级的进程,同一类...

    根本区别:进程是操作系统资源分配的基本单位,而线程是任务调度和执行的基本单位

    在开销方面:每个进程都有独立的代码和数据空间(程序上下文),程序之间的切换会有较大的开销;线程可以看做轻量级的进程,同一类线程共享代码和数据空间,每个线程都有自己独立的运行栈和程序计数器(PC),线程之间切换的开销小。

    所处环境:在操作系统中能同时运行多个进程(程序);而在同一个进程(程序)中有多个线程同时执行(通过CPU调度,在每个时间片中只有一个线程执行)

    内存分配方面:系统在运行的时候会为每个进程分配不同的内存空间;而对线程而言,除了CPU外,系统不会为线程分配内存(线程所使用的资源来自其所属进程的资源),线程组之间只能共享资源。

    包含关系:没有线程的进程可以看做是单线程的,如果一个进程内有多个线程,则执行过程不是一条线的,而是多条线(线程)共同完成的;线程是进程的一部分,所以线程也被称为轻权进程或者轻量级进程。

    展开全文
  • 什么是进程?什么是线程进程与线程的区别?

    千次阅读 多人点赞 2018-07-20 10:03:57
    进程与线程的区别? 进程与线程的选择取决条件? 什么是进程?什么是线程进程进程是并发执行程序在执行过程中资源分配和管理的基本单位(资源分配的最小单位)。进程可以理解为一个应用程序的执行过程,应用...
  • 程序,进程线程的区别和联系

    万次阅读 多人点赞 2018-08-26 22:27:18
    进程和程序区别和联系表现在以下方面: 1)程序只是一组指令的有序集合,它本身没有任何运行的含义,它只是一个静态的实体。而进程则不同,它是程序在某个数据集上的执行。进程是一个动态的实体,它有自己的生命周期...
  • 进程与线程概念

    千次阅读 2018-09-18 15:34:48
    进程的定义: 进程是指一个具有一定独立功能的程序,在一个数据集合上的一次动态执行过程。 如下图所示,源代码文件经过编译链接形成可执行文件,将可执行文件加载进内存进行执行。为什么要加载进内存呢?这是...
  • 程序、进程与线程(一)

    千次阅读 多人点赞 2018-10-19 09:33:53
    关于进程与线程的概念解释网上有很多,但总感觉讲的不是很清楚。于是今天打算整理一下这个方面的知识,语言力求通俗易懂 一、程序与进程 举个具体的场景,某一天你爸妈不在家,你必须要自己做饭、洗衣服等等。你要...
  • 进程与线程

    万次阅读 热门讨论 2006-04-20 19:51:00
    进程与线程进程线程是两个相对的概念,通常来说,一个进程可以定义程序的一个实例(Instance)。在Win32中,进程并不执行什么,它只是占据应用程序所使用的地址空间。为了让进程完成一定的工作,进程必须至少占有...
  • 进程线程的区别(超详细)

    万次阅读 多人点赞 2019-10-03 21:57:46
    进程线程 进程 一个在内存中运行的应用程序。每个进程都有自己独立的一块内存空间,一个进程可以有多个线程,比如...与进程不同的是同类的多个线程共享进程的堆和方法区资源,但每个线程有自己的程序计数器、虚拟...
  • Linux进程与线程的区别

    万次阅读 多人点赞 2016-05-26 14:19:43
    进程与线程的区别,早已经成为了经典问题。自线程概念诞生起,关于这个问题的讨论就没有停止过。无论是初级程序员,还是资深专家,都应该考虑过这个问题,只是层次角度不同罢了。一般程序员而言,搞清楚二者的概念,...
  • 深刻理解线程和进程的概念,掌握线程与进程在组成成分上的差别,以及与其相适应的通讯方式和应用目标 (二) 实验内容 以Linux系统进程和线程机制为背景,掌握fork()和clone()系统调用的形式和功能,以及与其相适应...
  • 进程与线程的区别和联系

    千次阅读 多人点赞 2018-08-08 21:37:00
    所以说程序与进程的区别在于,程序是指令的集合,是进程运行的静态描述文本,而进程则是程序在系统上顺序执行时的动态活动。 但是进程存在着很多缺陷,主要集中在两点: (1).进程只能在同一时间干一件事情,如果想...
  • 进程与线程的区别

    万次阅读 2019-02-13 17:01:43
    线程:进程的一个执行单元, 是进程内调度的实体、是CPU调度和分派的基本单位, 是比进程更小的独立运行的基本单位。线程也被称为轻量级进程, 线程是程序执行的最小单位。 一个程序至少一个进程, 一个进程至少一个线程...
  • 简述进程与线程的关系

    千次阅读 2018-03-20 13:33:25
    一. 定义 进程进程是能在系统中独立运行并作为资源... 两者关系 其实线程进程可以理解成父级子级的关系,一个进程可以包含一个或者多个线程进程主要是负责保护和管理资源,而线程主要负责是CPU执行代码的...
  • 如果用一句话来说明它的区别的话,那就是线程是系统执行(调度)的最小单元,进程是系统资源分配的最小单元。 进程线程是怎么来的? 在传统的进程模型中,有两个独立的概念:资源分配执行。所谓的执行的基本...
  • Linux 的内核线程,用户线程与轻量级进程 内核线程 轻量级进程 用户线程 轻量级进程与用户线程的区别 用户线程与轻量级进程的混合模式 多线程、多进程与多处理器计算平台 Linux 进程与线程的调度 任务类型与优先级...
  • 深入理解Node.js 进程与线程(8000长文彻底搞懂)

    千次阅读 多人点赞 2019-08-08 07:36:00
    进程与 线程是一个程序员的必知概念,面试经常被问及,但是一些文章内容只是讲讲理论知识,可能一些小伙伴并没有真的理解,在实际开发中应用也比较少。本篇文章除了介绍概念,通过Node.js 的角度讲解 进程与 线程,...
  • 什么是进程? 什么是线程线程进程之间的区别 进程线程的选择取决于什么? 计算密集型任务以及I/O密集型任务 在python中,多进程和多线程的选择取决于什么
  • Android进程与线程详解

    千次阅读 2014-12-04 20:20:09
    当一个应用的组件开始运行,并且这个应用没有其它的组件在运行,系统会为这个应用启动一个新的Linux进程,这个进程只有一个线程.默认情况下,一个应用的所有组件都运行在一个进程线程(主线程)中.如果一个应用...
1 2 3 4 5 ... 20
收藏数 736,893
精华内容 294,757
关键字:

进程与线程