Python进程

进程优点:

 它提供了多道编程,让我们感觉我们每个人都拥有自己的CPU和其他资源,可以提高计算机的利用率。

 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。

进程缺点:

 进程只能在一个时间干一件事,如果想同时干两件事或多件事,进程就无能为力了。

 进程在执行的过程中如果阻塞,例如等待输入,整个进程就会挂起,即使进程中有些工作不依赖于输入的数据,也将无法执行。


Python线程

线程的优点

 线程是进程的一个实体, 是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。

一个线程可以创建和撤销另一个线程,同一个进程中的多个线程之间可以并发执行。


进程和线程的区别

 所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。但对于一些要求同时进行并且又要共享某些变量的并发操作,只能用线程,不能用进程。
总结

1) 简而言之,一个程序至少有一个进程,一个进程至少有一个线程.

2) 线程的划分尺度小于进程,使得多线程程序的并发性高。

3) 另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。

4) 线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。

5) 从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区别。


线程与进程、谁更快

 因为python锁的问题,线程进行锁竞争、切换线程,会消耗资源。所以,大胆猜测一下:

 在CPU密集型任务下,多进程更快,或者说效果更好;而IO密集型,多线程能有效提高效率。


什么是计算机资源

 经典的冯诺依曼结构把计算机系统抽象成 CPU + 存储器 + IO,那么计算机资源无非就两种:

  1. 计算资源

  2. 存储资源


CPU和IO密集型

1.CPU密集型代码(各种循环处理、计数等等)
2.IO密集型代码(文件处理、网络爬虫等)

判断方法:

1.直接看CPU占用率, 硬盘IO读写速度
2.计算较多->CPU;时间等待较多(如网络爬虫)->IO

Python线程和进程的区别相关推荐

  1. Python|线程和进程|阻塞|非阻塞|同步|异步|生成器和协程|资源竞争|进程间通信|aiohttp库|daemon属性值详解|语言基础50课:学习(11)

    文章目录 系列目录 原项目地址 第34课:Python中的并发编程-1 线程和进程 多线程编程 使用 Thread 类创建线程对象 继承 Thread 类自定义线程 使用线程池 守护线程 资源竞争 G ...

  2. Python 线程和进程和协程总结

    Python 线程和进程和协程总结 线程和进程和协程 进程 进程是程序执行时的一个实例,是担当分配系统资源(CPU时间.内存等)的基本单位: 进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其 ...

  3. 对线程与进程的区别以及对多线程并发的理解

    一.线程与进程的区别 先简单说说线程与进程的概念: (1)进程是指一个内存中运行的应用程序,比如在Windows系统中,一个运行的exe就是一个进程. (2)线程是指进程中的一个执行流程. 区别: 一 ...

  4. 什么是线程线程和进程的区别

    什么是线程线程和进程的区别 线程是进程的一个实体,是cpu调度和分派的基本单位,比进程小可以独立运行的基本单位 一个进程包含多个线程具有独立功能的程序是操作系统进行资源分配和调度的一个独立单位

  5. python线程和进程-未完待续

    python线程和进程-未完待续 环境变量 0. 概念 1. 并行/并发 并行 并发 并行与并发的关系 2.进程/线程 基本概念 线程 多线程 队列 互斥锁/线程共享 阻塞 锁 条件锁 进程 多进程 ...

  6. 探究线程与进程的区别这一问题

    进程和线程基础(理论概念) 1. 定义 看了下面的定义,可能会有点晕,但我还是要把他写下来(为了严谨). 进程是资源(CPU.内存等)分配的基本单位,具有一定独立功能的程序关于某个数据集合上的一次运行 ...

  7. Linux中线程和进程的区别

    Linux中线程和进程的区别 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,它是系统进行资源分配和调度的一个独立单位.例如,用户运行自己的程序,系统就创建一个进程,并为它分配资源,包括 ...

  8. C#中线程和进程的区别

    线程和进程的区别 进程是程序和调度的独立单元 线程是CPU调度的基本单元 一个进程包含一个或多个线程 线程是轻量级的进程

  9. 线程和进程的区别(面试必备)

    参考文章: https://www.jianshu.com/p/2dc01727be45 线程与进程的区别通俗的解释: https://www.jianshu.com/p/8ad441510860 附 ...

最新文章

  1. redmine + git
  2. Java学习day2
  3. Boost::context模块fiber的stack测试程序
  4. JavaWEB开发的国际化
  5. 计算机的常见故障及解决方法,最全的电脑开机常见故障及解决方法!
  6. Apicloud+Vue开发App专题
  7. 新东方王江涛:十天背完考研英语词汇
  8. Word2003入门动画教程88:使用Word公式编辑器
  9. 皮影机器人ppt_机器人皮影戏装置的制作方法
  10. 【简简单单来个spider小案例吧】获取emoji表情包
  11. Jmeter读取CSV文件
  12. skycons.js 基于canvas的天气动态图标小插件
  13. 解决接口慢的几种方法
  14. 图形界面介绍Create Placement Blockage
  15. 42个5G智慧教育应用场景,告诉你5G将如何改变教育
  16. 浙江推出冷链上“链” 全面掌握冷链食品供应链流向
  17. 诠释绿色科技 Laedana荣获2022国际CMF设计奖
  18. apple store 爬虫
  19. 学习记录:VB.NET.操作ACCESS数据库
  20. 应该成为一名系统工程师么?

热门文章

  1. tensorflow分类任务——TFRecord制作自己的数据集
  2. c语言中用FILE类型的使用
  3. 【Java】Collections
  4. react styled-components插件完成独立组件css样式(js重构css写法)
  5. 【算法实验二】--【回溯法】--踩气球
  6. 踩气球ZOJ1003
  7. 基于arm核心板-呼吸机解决方案
  8. 微信APP抓包+将证书安装到系统证书目录
  9. 中国科学院大学计算机调剂,【中国科学院大学考研调剂官网】中国科学院大学研究生院:2016年调剂信息...
  10. 【SPEA测试设备】黑科技赋能晶圆检测——TH2000晶圆测试仪