首页 > 系统相关 >进程与线程的区别

进程与线程的区别

时间:2022-10-21 17:15:28浏览次数:68  
标签:操作系统 多个 区别 程序 线程 进程 多线程

一.进程与线程

  1.进程

    一个在内存中运行的应用程序。每个进程都有自己独立的一块内存空间,一个进程可以有多个线程,比如在Windows系统中,一个运行的xx.exe就是一个进程。

  2.线程

    线程(英语:thread)是操作系统能够进行运算调度的最小单位。是进程中的一个执行任务(控制单元),负责当前进程中程序的执行。线程是程序中一个单一的顺序控制流程.在单个程序中同时运行多个线程完成不同的工作,称为多线程.一个进程至少有一个线程,一个进程可以运行多个线程,多个线程可共享数据。

    与进程不同的是同类的多个线程共享进程的堆和方法区资源,但每个线程有自己的程序计数器、虚拟机栈和本地方法栈,所以系统在产生一个线程,或是在各个线程之间作切换工作时,负担要比进程小得多,也正因为如此,线程也被称为轻量级进程。

  3.区别

    线程和进程的区别在于,子进程和父进程有不同的代码和数据空间,而多个线程则共享数据空间,每个线程有自己的执行堆栈程序计数器为其执行上下文.多线程主要是为了节约CPU时间,发挥利用,根据具体情况而定. 线程的运行中需要使用计算机的内存资源和CPU。

    在引入线程的操作系统中,通常都是把进程作为分配资源的基本单位,而把线程作为独立运行和独立调度的基本单位。由于线程比进程更小,基本上不拥有系统资源,故对它的调度所付出开销就会小得多,能更高效的提高系统内多个程序间并发执行的程度,从而显著提高系统资源的利用率和吞吐量。因而近年来推出的通用操作系统都引入了线程,以便进一步提高系统的并发性,并把它视为现代操作系统的一个重要指标。

    线程与进程的区别可以归纳为以下4点:

    1)地址空间和其它资源(如打开文件):进程间相互独立,同一进程的各线程间共享。某进程内的线程在其它进程不可见。

    2)通信:进程间通信IPC,线程间可以直接读写进程数据段(如全局变量)来进行通信——需要进程同步和互斥手段的辅助,以保证数据的一致性。

    3)调度和切换:线程上下文切换比进程上下文切换要快得多。

    4)在多线程OS中,进程不是一个可执行的实体。

 

参考博客:https://blog.csdn.net/ThinkWon/article/details/102021274

     https://blog.csdn.net/teng_ye/article/details/104320970/

 

标签:操作系统,多个,区别,程序,线程,进程,多线程
From: https://www.cnblogs.com/royol/p/16814093.html

相关文章

  • 进程与线程的区别
    一、进程的线程的概念进程:是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竞争计算机系统资源的基本单位。 线程:是进程的一个执行单元,是进程内......
  • VS 2008 附加到进程测试 WIndow Service
    前提条件:首先安装windowservice 接受项目的时候,已经装好了不过还是贴一下安装步骤:https://www.jb51.net/article/238742.htm准备测试1.把项目编译一下,在项目所......
  • C#------主线程和子线程如何实现互相传递数据
    主线程和子线程如何实现互相传递数据在C#中创建线程Thread时,可以有多种方法,而主线程和子线程之间又如何实现互相传递数据,每种创建方法传递参数的效果是不同的,逐一看一下:......
  • 工业以太网交换机与以太网光端机的区别
    关于工业以太网交换机与以太网光端机的区别,简单的说,交换机就是数据交换和共享的设备来的,而光端机是负责传输的设备,两者是完全不同的设备。接下来就由飞畅科技的小编来详细介......
  • Java多线程实现的四种方式
    实现多线程有以下四种方式实现多线程有以下四种方式:1.继承Thread类2.实现Runnable接口3.实现Callable接口4.线程池:提供了一个线程队列,队列中保存着所有等待状态的线程......
  • Java 多线程编程之八:多线程的调度
        本博客是“Java多线程编程”系列的后续篇。“Java多线程编程”系列其他博客请参阅本博客结尾部分。    有多个线程,如何控制......
  • RPC 和 SOAP 有什么区别?
    RPCvsSOAP无论在商业、政治、人际关系,甚至在拯救生命的过程中,通信在任何领域都是至关重要的。通信被证明最重要的另一个领域是计算机网络。如果没有合适的通信手段,一个典......
  • Java 多线程编程之一 进程与线程,并发和并行的区别:吃馒头的比喻
    进程与线程,并发和并行的区别:吃馒头的比喻 没有线程编程的程序好比一个人一只手干活,而多线程的程序就比一个人多之手干活.进程是系统资源分配的独立单位,而线程是可调度......
  • JavaME 开发体会:线程编程解决手机地图按住方向键不放地图移动问题
    JavaME开发体会:线程编程解决手机地图按住方向键不放地图移动问题初从JavaEE开发转入JavaME开发,线程编程技术越发显得重要.作者以一个真实项目中的体会,演示了线程编......
  • MySQL中value和values的区别
    1.概况value和values都是用于插入数据时的关键字,从单词我们会联想到是不是value用于插入单挑数据,values用于插入多条数据,实际上他们并不是这样的,value可以用于插入单......