什么是进程,什么是线程,以及什么实际场景使用他们?

进程(Process):是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。简言之运行的程序就是进程。

线程(Thread) : 是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。

实际场景:
  首先明确多进程和多线程都能“同时实现多个任务”。假设要同时实现任务A和任务B,在实现的过程,分如下两种情况:

  如果任务A和任务B都需要自己拥有独立的资源才能往下执行那就必须是多进程。(任务A是盖大楼需要工人及建材,任务B是建桥梁也要工人及建材,那么这两个任务就需要两倍的资源才能同时进行)

  如果任务A和任务B都公用-套资源就能往下执行那就首选多线程。(任务A是烧开水泡茶需要水壶及加热工具,任务B是烧开水洗碗也需要水壶及加热工具,那么两个任务共用一套资源就能完成,没必要使用多进程)

多线程与多进程的区别

相同点:
    1、线程和进程都是处理多任务的,使得一份代码能同时执行多个任务;
    2、程序复杂性上升,任务之间如果有牵连还会涉及到同步与互斥相关技术;

不同点:
    1、多进程占用系统资源较多,多线程占用系统资源较少;
    2、每个进程拥有独立且完整的用户空间,每个线程自己只占用少量的栈空间,同时依赖所处进程的资源空间;
    3、进程因为其独立性,所以进程间通信需要依赖-一个公共的媒介(文件/内存),同进程下的多个线程公用进程资源,不存在通信这一说,但是要防止线程之间相互竞争资源(互斥/同步) ;
    4、多个进程间协同工作主要依赖通信及同步机制,多个线程间协同工作主要依赖斥及同步机制(而且进程与线程同步斥的控制方法完全不同);

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

  1. python 多进程_说说Python多线程与多进程的区别?

    公众号新增加了一个栏目,就是每天给大家解答一道Python常见的面试题,反正每天不贪多,一天一题,正好合适,只希望这个面试栏目,给那些正在准备面试的同学,提供一点点帮助! 小猿会从最基础的面试题开始, ...

  2. 多线程还是多进程的区别

    多进程之间不共享数据,程序上下文区分开. 多线程之间共享数据,在数据处理上要谨慎 1.定义 程序: 只是一组指令的有序集合,是计算机硬盘上的一些文件,是"死的" 进程:具有一定独立 ...

  3. python面试题之python多线程与多进程的区别

    多线程可以共享全局变量,多进程不能 多线程中,所有子线程的进程号相同,多进程中,不同的子进程进程号不同 线程共享内存空间:进程的内存是独立的 同一个进程的线程之间可以直接交流:两个进程想通信,必须通过 ...

  4. 了解多进程,守护子进程,多线程与多进程的区别,消息队列的使用,进程间资源共享等【超级详细】

  5. python多线程和多进程的区别_python中多线程与多进程的区别

    线程的概念: 线程是操作系统中进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位.一条线程指的是进程中一个单一顺序的控制流,一个进程可以有多个线程,每条线程可以同时执行不同的任务.一个 ...

  6. 多线程、多进程的区别及适用场景

    对于多进程和多线程,教科书上最经典的一句话是"进程是资源分配的最小单位,线程是CPU调度的最小单位". 多线程占相比于多进程占用内存少.CPU利用率高,创建销毁,切换都比较简单,速 ...

  7. python中的多线程、多进程

    简介 使用Python可以快速地编写程序,但是python对多线程的支持却不好,在Python2中,更多地使用多进程.在Python3中,引入了concurrent,便于多线程/进程开发. Pytho ...

  8. 线程VS进程,多线程VS多进程,并行VS并发,单核cpuVS多核cpu

    目录 概论 进程VS线程 并发VS并行 多线程VS多进程 总结 概论 程序是为完成特定任务.用某种语言编写的组指令的集合.即指一段静态的代码,静态对象. 进程是程序的次执行过程, 或是正在运行的 一个 ...

  9. 编程思想之多线程与多进程——以操作系统的角度述说线程与进程

    原文:http://blog.csdn.net/luoweifu/article/details/46595285  作者:luoweifu  转载请标名出处 什么是线程 什么是线程?线程与进程与有什 ...

最新文章

  1. matlab 按钮组设置,MATLAB中的单选按钮和按钮组
  2. android壁纸居中,Android Launcher 如何实现壁纸居中
  3. 圣三一学院计算机专业,360教育集团:爱尔兰都柏林大学圣三一学院计算机专业...
  4. 科研人看过来!2021腾讯AI Lab犀牛鸟专项研究计划开始申请
  5. 得到节点值的两种方法
  6. matlab第十章实验,matlab 图像函数以及运用(第十章)
  7. [linux 命令笔记] kill
  8. C++ Primer Plus学习(九)——内存模型和名称空间
  9. 大学生必备的几个公众号
  10. IntelliJ IDEA使用技巧(三)——Debug 篇
  11. tcl语言读取文件一行_TCL语言笔记:TCL中的列表操作
  12. 量子计算机是一种采用基于原理,量子计算的发展
  13. 图形化VS201x工程中的项目依赖关系
  14. HTML5 实例:旋转同时放大缩小的方块(canvas)
  15. 为中国操作系统内核而写的教程 1
  16. 若依系统v-hasPermi
  17. 如何生成数据库设计文档
  18. python练习, 打鱼晒网问题
  19. linux nc参数,linux nc命令参数及用法详解之毕业纪
  20. 德国IT行业薪酬2019年终大盘点

热门文章

  1. 英语口语测试软件在线,英语口语在线测试
  2. 定义基类Point和派生类Circle,求圆的周长.
  3. Git 版本管理工具(一)
  4. 角色限制(AuthorizeAttribute)
  5. ubuntu16.04下NVIDIA GTX965M显卡驱动PPA安装
  6. 更换计算机电源线,由更换电源引发的一次理线记录
  7. 【苹果相册推送iMessage】群发公用推送服务器(APNS)
  8. 向大量Word文档的表格中填写数据
  9. windows 安装kafka流程
  10. validateRequest