什么是进程,什么是线程,多线程与多进程的区别?
什么是进程,什么是线程,以及什么实际场景使用他们?
进程(Process):是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。简言之运行的程序就是进程。
线程(Thread) : 是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。
实际场景:
首先明确多进程和多线程都能“同时实现多个任务”。假设要同时实现任务A和任务B,在实现的过程,分如下两种情况:
如果任务A和任务B都需要自己拥有独立的资源才能往下执行那就必须是多进程。(任务A是盖大楼需要工人及建材,任务B是建桥梁也要工人及建材,那么这两个任务就需要两倍的资源才能同时进行)
如果任务A和任务B都公用-套资源就能往下执行那就首选多线程。(任务A是烧开水泡茶需要水壶及加热工具,任务B是烧开水洗碗也需要水壶及加热工具,那么两个任务共用一套资源就能完成,没必要使用多进程)
多线程与多进程的区别
相同点:
1、线程和进程都是处理多任务的,使得一份代码能同时执行多个任务;
2、程序复杂性上升,任务之间如果有牵连还会涉及到同步与互斥相关技术;
不同点:
1、多进程占用系统资源较多,多线程占用系统资源较少;
2、每个进程拥有独立且完整的用户空间,每个线程自己只占用少量的栈空间,同时依赖所处进程的资源空间;
3、进程因为其独立性,所以进程间通信需要依赖-一个公共的媒介(文件/内存),同进程下的多个线程公用进程资源,不存在通信这一说,但是要防止线程之间相互竞争资源(互斥/同步) ;
4、多个进程间协同工作主要依赖通信及同步机制,多个线程间协同工作主要依赖斥及同步机制(而且进程与线程同步斥的控制方法完全不同);
什么是进程,什么是线程,多线程与多进程的区别?相关推荐
- python 多进程_说说Python多线程与多进程的区别?
公众号新增加了一个栏目,就是每天给大家解答一道Python常见的面试题,反正每天不贪多,一天一题,正好合适,只希望这个面试栏目,给那些正在准备面试的同学,提供一点点帮助! 小猿会从最基础的面试题开始, ...
- 多线程还是多进程的区别
多进程之间不共享数据,程序上下文区分开. 多线程之间共享数据,在数据处理上要谨慎 1.定义 程序: 只是一组指令的有序集合,是计算机硬盘上的一些文件,是"死的" 进程:具有一定独立 ...
- python面试题之python多线程与多进程的区别
多线程可以共享全局变量,多进程不能 多线程中,所有子线程的进程号相同,多进程中,不同的子进程进程号不同 线程共享内存空间:进程的内存是独立的 同一个进程的线程之间可以直接交流:两个进程想通信,必须通过 ...
- 了解多进程,守护子进程,多线程与多进程的区别,消息队列的使用,进程间资源共享等【超级详细】
- python多线程和多进程的区别_python中多线程与多进程的区别
线程的概念: 线程是操作系统中进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位.一条线程指的是进程中一个单一顺序的控制流,一个进程可以有多个线程,每条线程可以同时执行不同的任务.一个 ...
- 多线程、多进程的区别及适用场景
对于多进程和多线程,教科书上最经典的一句话是"进程是资源分配的最小单位,线程是CPU调度的最小单位". 多线程占相比于多进程占用内存少.CPU利用率高,创建销毁,切换都比较简单,速 ...
- python中的多线程、多进程
简介 使用Python可以快速地编写程序,但是python对多线程的支持却不好,在Python2中,更多地使用多进程.在Python3中,引入了concurrent,便于多线程/进程开发. Pytho ...
- 线程VS进程,多线程VS多进程,并行VS并发,单核cpuVS多核cpu
目录 概论 进程VS线程 并发VS并行 多线程VS多进程 总结 概论 程序是为完成特定任务.用某种语言编写的组指令的集合.即指一段静态的代码,静态对象. 进程是程序的次执行过程, 或是正在运行的 一个 ...
- 编程思想之多线程与多进程——以操作系统的角度述说线程与进程
原文:http://blog.csdn.net/luoweifu/article/details/46595285 作者:luoweifu 转载请标名出处 什么是线程 什么是线程?线程与进程与有什 ...
最新文章
- matlab 按钮组设置,MATLAB中的单选按钮和按钮组
- android壁纸居中,Android Launcher 如何实现壁纸居中
- 圣三一学院计算机专业,360教育集团:爱尔兰都柏林大学圣三一学院计算机专业...
- 科研人看过来!2021腾讯AI Lab犀牛鸟专项研究计划开始申请
- 得到节点值的两种方法
- matlab第十章实验,matlab 图像函数以及运用(第十章)
- [linux 命令笔记] kill
- C++ Primer Plus学习(九)——内存模型和名称空间
- 大学生必备的几个公众号
- IntelliJ IDEA使用技巧(三)——Debug 篇
- tcl语言读取文件一行_TCL语言笔记:TCL中的列表操作
- 量子计算机是一种采用基于原理,量子计算的发展
- 图形化VS201x工程中的项目依赖关系
- HTML5 实例:旋转同时放大缩小的方块(canvas)
- 为中国操作系统内核而写的教程 1
- 若依系统v-hasPermi
- 如何生成数据库设计文档
- python练习, 打鱼晒网问题
- linux nc参数,linux nc命令参数及用法详解之毕业纪
- 德国IT行业薪酬2019年终大盘点