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

进程与线程的区别

时间:2022-10-22 17:55:12浏览次数:44  
标签:区别 单位 地址 线程 进程 多线程

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

  在引入了线程的操作系统中,通常一个进程都有若干个线程,至少包含一个线程。

主要区别如下:

1、进程是资源分配的最小单位,线程是程序执行的最小单位(资源调度的最小单位)
2、进程有自己的独立地址空间,每启动一个进程,系统就会为它分配地址空间,建立数据表来维护代码段、堆栈段和数据段,这种操作非常昂贵。
而线程是共享进程中的数据的,使用相同的地址空间,因此CPU切换一个线程的花费远比进程要小很多,同时创建一个线程的开销也比进程要小很多。
3、线程之间的通信更方便,同一进程下的线程共享全局变量、静态变量等数据,而进程之间的通信需要以通信的方式(IPC)进行。不过如何处理好同步与互斥是编写多线程程序的难点。
4、但是多进程程序更健壮,多线程程序只要有一个线程死掉,整个进程也死掉了,而一个进程死掉并不会对另外一个进程造成影响,因为进程有自己独立的地址空间。

标签:区别,单位,地址,线程,进程,多线程
From: https://www.cnblogs.com/Aprillamb/p/16816808.html

相关文章

  • devexpress中grid控件教程 多线程异步加载数据,进度条展示
    devexpress中最强大的控件,要数它的Grid了。几乎任务数据都可以展示,但今天要用它做另一个功能。假设我们开发这样一款软件:视频编辑软件。里面有个功能,提取视频中的音频。一......
  • 进程与线程
    简介1、进程进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,简而言之就是程序的一次执行过程,也可以直接理解为电脑上的软件的运行情况,通过电脑的任务管......
  • C# 输入法切换 C#中FormClosing与FormClosed的区别详细解析
    引用///<summary>///输入法切ENG///</summary>publicvoidChangeENG(){WinAPI.PostMessage(WinAPI.HWND_BROADC......
  • 多线程
    线程简介多任务现实中太多同时做多件事情的例子,看起来是多个任务都在做,其实本质上我们的大脑同时只做了一件事多线程原来是一条路,慢慢因为车太多了,道路阻塞,效率极......
  • fullsdk和public-SDK区别
    今天在使用远程启动FA的时候,要用到fullsdkpublic-SDK是提供给应用开发的工具包,跟随DevEcoStudio下载,不包含系统应用所需要的高权限APIfull-SDK是提供给OEM厂商开发应用的工......
  • UEC++ 多线程(二) AsyncTask
    AsyncTaskAsyncTask系统实现的多线程与自己实现继承的FRunnable实现的原理相似,还可以利用UE4提供的线程池。当使用多线程不满意时也可以调用StartSynchronousTask改成主线......
  • 线程与进程
    今天我们就来主要介绍一下什么是线程和进程,线程和进程并没有表面上看起来这么简单。一、进程定义:进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,......
  • inner join 和outer join的区别
    https://blog.csdn.net/qq_45515347/article/details/1254715121.innerjoin和outerjoin的区别innerjoin和outerjoin是sql语言中的两种联表查询语句假设,A,B两表各......
  • Python学习:类里面静态方法(@staticmethod),类方法(@classmethod)和实例方法(self)的使用与
    python3类里面常用的方法有3个:静态方法(@staticmethod),类方法(@classmethod)和实例方法(self)本篇讲解这3种方法在使用上有什么区别。1.函数先从函数说起,方法跟函数是有区别的,......
  • StringBuffer、StringBuilder、String 区别
    String字符串常量不可变使用字符串拼接时是不同的2个空间StringBuffer字符串变量可变线程安全字符串拼接直接在字符串后追加StringBuilder字符串变量可变非线程安......