目录

什么是进程?什么是线程?

为什么要有线程?

进程与线程的区别?

进程与线程的选择取决条件?


什么是进程?什么是线程?

进程:进程是并发执行程序在执行过程中资源分配和管理的基本单位(资源分配的最小单位)。进程可以理解为一个应用程序的执行过程,应用程序一旦执行,就是一个进程。每个进程都有自己独立的地址空间,每启动一个进程,系统就会为它分配地址空间,建立数据表来维护代码段、堆栈段和数据段。

线程:程序执行的最小单位。

为什么要有线程?

每个进程都有自己的地址空间,即进程空间,在网络或多用户换机下,一个服务器通常需要接收大量不确定数量用户的并发请求,为每一个请求都创建一个进程显然行不通(系统开销大响应用户请求效率低),因此操作系统中线程概念被引进。

进程与线程的区别?

1. 地址空间: 同一进程的所有线程共享本进程的地址空间,而不同的进程之间的地址空间是独立的。

2. 资源拥有: 同一进程的所有线程共享本进程的资源,如内存,CPU,IO等。进程之间的资源是独立的,无法共享。

3. 执行过程:每一个进程可以说就是一个可执行的应用程序,每一个独立的进程都有一个程序执行的入口,顺序执行序列。但是线程不能够独立执行,必须依存在应用程序中,由程序的多线程控制机制进行控制。

4. 健壮性: 因为同一进程的所以线程共享此线程的资源,因此当一个线程发生崩溃时,此进程也会发生崩溃。 但是各个进程之间的资源是独立的,因此当一个进程崩溃时,不会影响其他进程。因此进程比线程健壮。

线程执行开销小,但不利于资源的管理与保护。

进程的执行开销大,但可以进行资源的管理与保护。进程可以跨机器前移。

进程与线程的选择取决条件?

因为进程是资源分配的基本单位,线程是程序执行的最小单。以及进程与线程之间的健壮性来考虑。

1. 在程序中,如果需要频繁创建和销毁的使用线程。因为进程创建和销毁开销很大(需要不停的分配资源),但是线程频繁的调用只是改变CPU的执行,开销小。

2. 如果需要程序更加的稳定安全时,可以选择进程。如果追求速度,就选择线程。

什么是进程?什么是线程?进程与线程的区别?相关推荐

  1. php多线程模型,PHP进程模型、进程通讯方式、进程线程的区别分别有哪些?

    PHP进程模型是一个正在执行的程序,可以分配给处理器并由处理器执行的一个实体:PHP进程通讯方式有管道及有名管道,信号,共享内存等:PHP进程线程的区别有进程是资源的分配和调度的一个独立单元,而线程是 ...

  2. VC下提前注入进程的一些方法2——远线程带参数

    在前一节中介绍了通过远线程不带参数的方式提前注入进程,现在介绍种远线程携带参数的方法.(转载请指明出处) 1.2 执行注入的进程需要传信息给被注入进程 因为同样采用的是远线程注入,所以大致的思路是一样 ...

  3. VC下提前注入进程的一些方法1——远线程不带参数

    前些天一直在研究Ring3层的提前注入问题.所谓提前注入,就是在程序代码逻辑还没执行前就注入,这样做一般用于Hook API.(转载请指明出处)自己写了个demo,在此记下. 我的demo使用了两种注 ...

  4. 打开线程 | 进程 | 协程的大门

    不知从几何起,可能是大三那年的操作系统考试,也可能是刚经历完的秋招,这些概念总是迷迷糊糊,可能自己回答的和其他人的答复也差不多,并没有什么亮点,通常都会以:「我们换个题」的方式结束,有时候也挺尴尬的. ...

  5. python是如何实现进程池和线程池的_高并发:线程、线程锁与线程池(精华),手写代码实现线程池...

    前文: 单线程--多线程的开启--线程锁--线程同步工具--手写连接池--连接池工具类. 一.线程 1.线程的概念 2.线程与进程的关系 3.定义: 区别:如上!!! 4.wait()和sleep() ...

  6. 【知识强化】第二章 进程管理 2.1 进程与线程

    处理机管理相关的内容.认识一个很重要的概念叫做进程. 系统当中正在运行的程序怎么怎么地,怎么怎么地,偶尔也会提到进程这个术语."进程"和"程序"这两个概念是比较 ...

  7. 应用程序进程(二):启动线程池

    多线程并发知识库 JAVA线程实现/创建的四种方式 1.继承Thread类 Thread类本质上是实现了Runnable接口的一个实例,代表一个线程的实例.启动线程的唯一方法就是通过Thread类的s ...

  8. linux 线程 进程经典文章

    进程是程 序在计算机上的一次执行活动.当你运行一个程序,你就启动了一个进程.显然,程序是 死的(静态的),进程是活的(动态的).进程可以分为系统进程和用户进程.凡是用于完成操作系统的各种功能的进程就是 ...

  9. 用户进程与内核进程是一一对应的吗_用户线程、内核线程和轻量级进程

    这一篇再继续就线程进行一些更深层次的研究 线程所需的资源 进程中各个线程共享代码.数据和文件等资源,记录线程运行状态的空间(TCB)每个线程单独有一个 每个进程都需要它自己私有的线程控制块(TCB) ...

  10. PHP 会话 线程 进程,接上节我们来了解了解多进程的一些基础进程 / 线程 / 多进程 / 父进程 / 子进程 / 会话 / 控制终端等...

    多进程的一些基础 定义 进程/父进程/子进程 进程是资源调度和分配的一个独立单元 进程是由线程组成 即等于 一个进程 = 一个线程. 进程是由另一个进程创建 (系统进程 init进程除外) 所以会出现 ...

最新文章

  1. jedis使用_网易架构师心得:Springboot下使用redis踩过的坑
  2. java 取不同的随机数_Java实现获取指定个数的不同随机数
  3. 武汉linux驱动培训转让,linux驱动培训靠谱吗
  4. 链表打印从尾到头打印链表
  5. cocos3.2中如何创建一个场景
  6. Hive Shell
  7. vsCode个人设置
  8. Navicat过期问题的解决
  9. HDU-----(4858)项目管理(模拟)
  10. 【VRPSD】基于matlab蚁群算法求解运钞车路径规划问题【含Matlab源码 1511期】
  11. 【CarMaker学习笔记】T型路口多车运行实验
  12. Spring Boot 整合定时任务,可以动态编辑的定时任务2022-03-09 11:27·java互联网架构
  13. 九、Kali Linux 2 社会工程学工具
  14. 漫威超级争霸战辅助脚本,快速刷星币打竞技场副本
  15. 关于并发量的简单计算公式
  16. 前端面试之浏览器原理篇
  17. 12种工作让你摇身变富豪
  18. java地理坐标转屏幕_(转)经纬度坐标转换为屏幕坐标
  19. Tas02 基础查询与排序
  20. 移动端REM响应式模板及相应规范

热门文章

  1. 5分钟让你的牙齿blingbling让牙齿…
  2. 毒霸主页篡改浏览器主页
  3. web前端学习笔记总页面
  4. Dialogue System for Unity文档中英对照版(简雨原创翻译)完结篇(内置脚本使用,脚本API)
  5. 液压推土车设计_氢源电动摩托车3D数模_可倾倒的垃圾推车_机场手推车行李推车_汽车悬挂系统solidworks设计_电动物料搬运车三维………………
  6. 计算机服务 无法保存,win7电脑无法保存打印机设置怎么办?
  7. mac 下开发java_MAC 系统java开发环境搭建教程
  8. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java智能新冠疫苗接种助手6hz40
  9. linux主流的web服务器,适合Web服务器的非主流Linux发行版
  10. Forth 探究之你好世界