Python多任务执行方式

news2024/11/25 20:25:20

一、多任务的执行方式

  • 并发:在一段时间内交替去执行任务(单核CPU)
  • 并行:CPU核数大于任务数

二、进程(实现多任务)——操作系统调度

  • 进程是操作系统进行资源分配的基本单元
  • 一个程序至少有一个进程,一个进程默认有一个线程:线程是依附在进程内的
    在这里插入图片描述
  • 进程注意点
    • 进程之间不共享全局变量( 主进程:Windows需要添加main防止递归)
    • 主进程会等待所有的子进程结束再结束
  • 主进程退出子进程销毁
    • 让子进程设置成为守护主进程,主进程退出子进程销毁,子进程会很依赖主进程
      sub_process = multiprocess.Process(target=task)
      sub_process.daemon = True
      sub_process.start()
    • 让主进程退出之前先让子进程销毁
      sub_process.terminate()

三、线程(实现多任务)——cpu调度

  • 线程是cpu调度的基本单位,每个进程至少都有一个线程,即主线程
    在这里插入图片描述
    线程注意点:
  • 线程之间执行是无序的
  • 主线程会等待所有的子线程执行结束再结束
    在这里插入图片描述
  • 线程之间共享全局变量
    • 可能出现错误问题:全局变量问题、数据不同步
    • 解决方案:线程等待:join()、互斥锁、线程等待和互斥锁,都是改成单任务执行:保证数据准确性,但是执行性能下降
      在这里插入图片描述
  • 死锁:一直等待对方释放锁的情景
    在这里插入图片描述

四、 对比

  • 全局变量
    • 进程之间不共享
    • 线程共享,注意资源竞争(线程等待,互斥锁)
  • 创建进程的资源开销 > 线程
  • 进程是操作系统资源分配的基本单位,线程是CPU调度的基本单位
  • 线程不能独立执行,必须存在进程中
  • 多进程开发比单进程多线程开发稳定性强

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/684586.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

极致呈现系列之:EchartsK线图的数据量化

目录 什么是K线图K线图的特性及应用场景K线图的特性K线图的应用场景 Echarts中K线图的常用属性Vue3中创建K线图 什么是K线图 K线图是一种用于展示金融市场中股票、期货、外汇等交易品种价格走势的图表形式。它由一根根的垂直线条和水平线组成,能够直观地显示出一段…

OJ #378 字符串括号匹配2

题目描述 ​ 给出一个字符串,判断其中的左右括号是否匹配。 ​ 注:需同时判断左右圆括号 ( 和 ) ,左右中括号 [和],左右大括号 {和}。 ​ 不需要考虑括号之间的优先级的问题,也就是说,小括号包含大括号&…

NodeJS应届毕业生财务管理系统-计算机毕设 附源码82886

基于VueNodeJS应届毕业生财务管理系统 摘 要 随着互联网大趋势的到来,社会的方方面面,各行各业都在考虑利用互联网作为媒介将自己的信息更及时有效地推广出去,而其中最好的方式就是建立网络管理系统,并对其进行信息管理。由于现在…

合宙Air724UG Cat.1模块硬件设计指南--看门狗

概述 Air724UG 内部已经自带了看门狗,4秒进行一次喂狗,如果主芯片异常死机,自带的看门狗15秒左右会硬件复位主芯片。 另外主芯片死机情况下,reset键也可以硬重启。 通常情况下不需要外加硬件看门狗,如果对系统稳定性有…

FreeRTOS和uC/OS:选择入手哪个RTOS更合适?

FreeRTOS和uC/OS是两个流行的实时操作系统(RTOS),用于嵌入式系统开发。它们有一些区别,但选择哪个先入手取决于你的需求和项目要求。 复杂度:FreeRTOS是一个相对较简单的RTOS,它专注于提供基本的实时调度和…

西门子Mendix 入门 3

导航页面:用于在应用程序中添加或修改其他页面 创建查看查看和添加公司不同部门的页面 打开导航页面,添加新项目 选择TaskTracke新建一个名为Department_Overview的页面,并选择List作为模板 创建成功 现在转到 Department_Overview页面 链接数…

揭秘2023年项目管理软件排行榜实力榜

在现代的商业世界中,项目管理是必不可少的一个组成部分。为了成功地管理一个项目,项目经理需要实施一种系统化的方法来确保项目在时间和预算的约束下成功。这就需要使用专业的项目管理软件。因此,项目管理软件在商业领域中扮演着至关重要的角…

管理类联考——逻辑——知识篇——分析推理——一、排序——haimian

排序 题型特征 排序题通常是依据大小、时间、名次和前后等条件将几个元素有序地排在若干连续排列的位置上。解题时要找出一个对整个排列起决定作用的条件,然后涉及先后位置的条件尽可能结合起来进行解题。 思维导图 思路点拨 注意选项的模式,如果已经…

阿维塔进攻全场景NCA:“遥遥领先”能否赢得市场买单?

阿维塔正在高阶智驾的落地上奋力探索。 “在阿维塔上面,长安汽车、华为、宁德时代做了非常深层次的合作”,6月15日,阿维塔科技副总裁、首席营销官CMO 李鹏程称。当天,阿维塔邀请媒体走进深圳华为坂田基地的华为智能汽车解决方案展…

Autonomous Vehicles Learning Notes

文章目录 自动驾驶感知传感器多模态传感器融合BEVCorner Cases 缩写 未完待续。。。 自动驾驶 来自:浅谈自动驾驶技术与挑战 L0:主动刹车、盲点监测、车道偏离预警和车身稳定系统都属于 L0 级别的自动驾驶; L1:如车道保持系统&a…

MongoDB聚合查询(二)

MongoDB聚合查询 什么是聚合查询 聚合操作主要用于处理数据并返回计算结果。聚合操作将来自多个文档的值组合在一起,按条件分组后,再进行一系列操作(如求和、平均值、最大值、最小值)以返回单个结果。 MongoDB的聚合查询 聚合是…

springboot+vue学生档案借阅管理系统_8xpgg-

随着社会的不断进步与发展,人们对生活质量要求逐步提升。如果开发一款档案管理系统,可以让学生在最短的时间里享受到最好的服务;而开发本系统,又能够提高系统整体工作水平,简化工作程序,这对管理员和学生来…

【算法题】数组系列(找出数组中重复的数字、二维数组中的查找)

算法题 数组系列 一、找出数组中重复的数字1.1、题目1.2、解题思路1(排序法)1.3、解题思路2(hash)1.4、小结 二、二维数组中的查找2.1、题目2.2、理解题目2.3、解题思路2.3.1、暴力枚举2.3.2、二分查找2.3.3、对角线查询&#xff…

【数据结构与算法C++实现】3、排序算法

原视频为左程云的B站教学 以下所有的swap()函数,函数定义为 void swap(int& a, int& b) {int t a;a b;b t; } // 也可以用异或,但不能传入同一个变量,可以是不同变量相同值 void swap(int& a, int& b) {a a ^ b;b a ^ …

极智开发 | 让wsl2读取宿主机usb设备

欢迎关注我的公众号 [极智视界],获取我的更多经验分享 大家好,我是极智视界,本文介绍一下 让wsl2读取宿主机usb设备的方法。 邀您加入我的知识星球「极智视界」,星球内有超多好玩的项目实战源码下载,链接:…

高效处理消息:使用Spring Boot实现消息重试机制

当涉及到消息发送和接收的可靠性,Spring Boot提供了一些机制来确保消息的可靠传递。其中包括消息确认机制和重试机制。下面是一个示例代码,演示如何在Spring Boot中实现可靠的消息发送和接收。 首先,我们需要配置RabbitMQ的连接信息和相关属性…

58 KVM工具使用指南-应用 LibcarePlus 热补丁

文章目录 58 KVM工具使用指南-应用 LibcarePlus 热补丁58.1 前期准备58.2 加载热补丁58.3 查询补丁58.4 卸载热补丁 58 KVM工具使用指南-应用 LibcarePlus 热补丁 本节以原文件 foo.c 和补丁文件 bar.c 为例,介绍 LibcarePlus 热补丁的应用指导。 58.1 前期准备 …

小小面试题之赛马问题

各家大厂面试时都喜欢出一些逻辑题,简单的考验一下应试者的逻辑思维能力。 题目是:现在有64匹赛马和8条赛道,最少需要多少轮比赛才能选出最快的4匹马。 依据现实情况来说,这个问题很好回答。需要经过小组赛,16强赛&am…

王道操作系统学习笔记(2)——进程管理

前言 本文介绍了操作系统中的进程管理,文章中的内容来自B站王道考研操作系统课程,想要完整学习的可以到B站官方看完整版。 二:进程管理 2.1.1:进程的概念、组成、特征 程序:是静态的,就是存放在磁盘里的…

【好书精读】网络是怎样连接的 —— UDP 协议的收发操作

( 该图由我使用 AI 绘制 ) 目录 不需要重发的数据用 UDP 发送更高效 控制用的短数据 音频和视频数据 不需要重发的数据用 UDP 发送更高效 DNS 服务器查询 IP 地址的时候我们用的是 UDP 协议 简单的说就是,TCP之所以复杂,是…