返回顶部
首页 > 资讯 > 后端开发 > Python >Python多任务是怎么发生的
  • 618
分享到

Python多任务是怎么发生的

2023-06-19 11:06:54 618人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要讲解了“python多任务是怎么发生的”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python多任务是怎么发生的”吧!准备工作增加程序执行过程中细节的输出。 单任务时执行结果

这篇文章主要讲解了“python多任务是怎么发生的”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python多任务是怎么发生的”吧!

准备工作

增加程序执行过程中细节的输出。

Python多任务是怎么发生的


单任务时执行结果

WT:<<<<WriteData:4<<<<
WT:int DataArray::aDDData(0)
WT:{
WT:     if(m_dataSize < (ARRAY_SIZE - 1))
WT:     {
WT:             m_buffer[0] = 0;
WT:             m_dataSize++;
WT:     }
WT:}
WT:int DataArray::addData(1)
WT:{
WT:     if(m_dataSize < (ARRAY_SIZE - 1))
WT:     {
WT:             m_buffer[1] = 1;
WT:             m_dataSize++;
WT:     }
WT:}
WT:int DataArray::addData(2)
WT:{
WT:     if(m_dataSize < (ARRAY_SIZE - 1))
WT:     {
WT:             m_buffer[2] = 2;
WT:             m_dataSize++;
WT:     }
WT:}
WT:int DataArray::addData(3)
WT:{
WT:     if(m_dataSize < (ARRAY_SIZE - 1))
WT:     {
WT:             m_buffer[3] = 3;
WT:             m_dataSize++;
WT:     }
WT:}
WT:int DataArray::addData(4)
WT:{
WT:     if(m_dataSize < (ARRAY_SIZE - 1))
WT:     {
WT:             m_buffer[4] = 4;
WT:             m_dataSize++;
WT:     }
WT:}
RT:>>>>ReadData:4>>>>
RT:int DataArray::getDataSize()
RT:{
RT:     return 5;
RT:}
RT::----data_size=5
RT:int DataArray::getData(0)
RT:{
RT:     if(index >= 0 && index < m_dataSize)
RT:     {
RT:             return m_buffer[0];, value =0
RT:     }
RT:}
RT:int DataArray::getData(1)
RT:{
RT:     if(index >= 0 && index < m_dataSize)
RT:     {
RT:             return m_buffer[1];, value =1
RT:     }
RT:}
RT:int DataArray::getData(2)
RT:{
RT:     if(index >= 0 && index < m_dataSize)
RT:     {
RT:             return m_buffer[2];, value =2
RT:     }
RT:}
RT:int DataArray::getData(3)
RT:{
RT:     if(index >= 0 && index < m_dataSize)
RT:     {
RT:             return m_buffer[3];, value =3
RT:     }
RT:}
RT:int DataArray::getData(4)
RT:{
RT:     if(index >= 0 && index < m_dataSize)
RT:     {
RT:             return m_buffer[4];, value =4
RT:     }
RT:}
RT:----total=10

上面的输出只是写五个数,读五个数的部分,但是可以看出写数据处理(WT)

完全结束以后,读数据处理(RT)才开始执行。这是数据处理正确进行的必要条件,记住这一点。

多任务(线程)条件下的执行结果

RT:>>>>ReadData:WT:<<<<WriteData:0<<<<
WT:int DataArray::addData(0)
WT:{
WT:     if(m_dataSize < (ARRAY_SIZE - 1))
WT:     {
WT:             m_buffer[0] = 0;
WT:             m_dataSize++;
WT:     }
WT:}
WT:int DataArray::addData(1)
WT:{
WT:     if(m_dataSize < (ARRAY_SIZE - 1))
WT:     {
WT:             m_buffer[1] = 1;
WT:             m_dataSize++;
WT:     }
WT:}
WT:int DataArray::addData(2)
WT:{
WT:     if(m_dataSize < (ARRAY_SIZE - 1))
WT:     {
WT:             m_buffer[2] = 2;
WT:             m_dataSize++;
WT:     }
WT:}
WT:int DataArray::addData(3)
WT:{
WT:     if(m_dataSize < (ARRAY_SIZE - 1))
WT:     {
WT:             m_buffer[3] = 3;
WT:             m_dataSize++;
WT:     }
WT:}
WT:int DataArray::addData(4)
WT:{
WT:     if(m_dataSize < (ARRAY_SIZE - 1))
WT:     {
WT:             m_buffer[4] = 4;
WT:             m_dataSize++;
WT:     }
WT:}
WT:<<<<WriteData:1<<<<
WT:int DataArray::addData(0)
WT:{
WT:     if(m_dataSize < (ARRAY_SIZE - 1))
0>>>>
RT:int DataArray::getDataSize()
RT:{
RT:     return 5;
RT:}
RT::----data_size=5
RT:int DataArray::getData(0)
RT:{
RT:     if(index >= 0 && index < m_dataSize)
RT:     {
RT:             return m_buffer[0]RT:   }
RT:}
RT:int DataArray::getData(1)
RT:{
RT:     if(index >= 0 && index < m_dataSize)
RT:     {
RT:             return m_buffer[1]RT:   }
RT:}
RT:int DataArray::getData(2)
RT:{
RT:     if(index >= 0 && index < m_dataSize)
RT: {
RT:             return m_buffer[2]RT:   }
RT:}
RT:int DataArray::getData(3)
RT:{
RT:     if(index >= 0 && index < m_dataSize)
WT:     {
WT:             m_buffer[5] = 0;
WT:             m_dataSize++;
WT:     }
WT:}
WT:int DataArray::addData(1)
WT:{
WT:     if(m_dataSize < (ARRAY_SIZE - 1))
WT:     {
WT:             m_buffer[6] = 1;
WT:             m_dataSize++;
WT:     }
WT:}

如果程序可以看出写数据处理和读数据处理随机交替进行,执行结果会怎么样没有人能说清楚。另外虽然本例中没有涉及,如果内存关联处理,则经常会出现内存破坏而导致死机等各种问题。而且由于任务切换的随机性,问题的发生也是随机的,这可能是多任务变成最大的难点。

感谢各位的阅读,以上就是“Python多任务是怎么发生的”的内容了,经过本文的学习后,相信大家对Python多任务是怎么发生的这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: Python多任务是怎么发生的

本文链接: https://lsjlt.com/news/295502.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python多任务是怎么发生的
    这篇文章主要讲解了“Python多任务是怎么发生的”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python多任务是怎么发生的”吧!准备工作增加程序执行过程中细节的输出。 单任务时执行结果...
    99+
    2023-06-19
  • Python定时任务触发的方法是什么
    本篇内容介绍了“Python定时任务触发的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!APSchedulerAPSchedule...
    99+
    2023-07-05
  • Python是怎么诞生的
    本篇内容主要讲解“Python是怎么诞生的”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python是怎么诞生的”吧!Python的起源Python的作者,Guido von Rossum,确实...
    99+
    2023-06-02
  • Jspxcms定时任务的开发是怎样的
    本篇文章为大家展示了Jspxcms定时任务的开发是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。系统中有定时任务功能,里面有一些系统已经定义好的任务类型。如果系统自带的任务类型里没有自己需要的...
    99+
    2023-06-26
  • 详解Python的多任务进程
    目录1.基本概念2.线程和进程比较3.协程和线程的比较总结1.基本概念 定义含义并发:concurrency,同一时刻只能有一条指令执行,但是多个线程的对应的指令被快速轮换地执行并行...
    99+
    2024-04-02
  • 怎么用Python实现多任务版的udp聊天器
    本篇内容主要讲解“怎么用Python实现多任务版的udp聊天器”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用Python实现多任务版的udp聊天器”吧!一、案例示例二、案例说明编写一个有2...
    99+
    2023-06-20
  • Fastai怎么处理图像生成的任务
    Fastai 可以用来处理图像生成任务,如生成对抗网络(GAN)生成图像、自动编码器生成图像等。下面是使用 Fastai 处理图像生...
    99+
    2024-04-02
  • 怎么使用Python实现多任务版的udp聊天器
    这篇“怎么使用Python实现多任务版的udp聊天器”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么使用Python实现多...
    99+
    2023-06-28
  • Golang开发工程师的任务是什么?
    Golang(即Go语言)是一种开源的编程语言,由Google开发并在2012年正式发布。它的设计旨在提供一种简单、高效的方法来开发可靠、可扩展的软件。作为一名Golang开发工程师,你将承担以下职责。 编...
    99+
    2024-01-20
    开发 包括设计 包括需求分析
  • quartz任务触发流程是什么
    Quartz任务触发流程如下:1. 创建一个JobDetail对象,该对象包含任务的详细信息,如任务名称、任务组、任务类等。2. 创...
    99+
    2023-08-31
    quartz
  • 如何使用Python中的多线程进行任务并发执行
    如何使用Python中的多线程进行任务并发执行多线程是一种常用的并发编程技术,可以提高程序的执行效率。在Python中,使用多线程可以实现任务的并发执行,从而加快程序的运行速度。本文将介绍如何使用Python中的多线程进行任务的并发执行,并...
    99+
    2023-10-22
    并发执行 Python多线程
  • python 多线程实现多任务的方法示例
    目录1 多线程实现多任务1.1 什么是线程?1.2 一个程序实现多任务的方法1.3 多线程的创建方式1.3.1 创建threading.Thread对象1.3.2 继承threading...
    99+
    2022-06-02
    python 多线程实现多任务 python 多线程多任务
  • jspXCMS怎么开发定时任务
    这篇文章主要介绍了jspXCMS怎么开发定时任务的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇jspXCMS怎么开发定时任务文章都会有所收获,下面我们一起来看看吧。系统中有定时任务功能,里面有一些系统已经定义好...
    99+
    2023-06-26
  • php多进程处理任务的方法是什么
    在PHP中,有几种方法可以实现多进程处理任务:1. 使用fork函数:fork函数可以创建一个子进程,子进程会复制父进程的所有数据。...
    99+
    2023-08-12
    php
  • Dart怎么实现多任务并行
    本篇内容介绍了“Dart怎么实现多任务并行”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Isolate(隔离区域)Dart 是一种支持多任务...
    99+
    2023-07-05
  • quartz多个任务执行顺序是什么
    在Quartz中,多个任务的执行顺序可以通过配置Trigger的优先级来确定。Trigger的优先级越高,任务就越早执行。当多个任务...
    99+
    2023-08-14
    quartz
  • linux是不是一个多任务多用户的操作系统
    本篇内容介绍了“linux是不是一个多任务多用户的操作系统”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Linux是一套免费使用和自由传播的...
    99+
    2023-07-05
  • python多进程并发的方法是什么
    Python中实现多进程并发的方法有以下几种:1. 使用`multiprocessing`模块:`multiprocessing`模...
    99+
    2023-08-23
    python
  • PyTorch中怎么处理图像生成任务
    在PyTorch中处理图像生成任务通常涉及使用生成对抗网络(GAN)或变分自动编码器(VAE)等模型。以下是处理图像生成任务的一般步...
    99+
    2024-03-05
    PyTorch
  • django怎么自动生成任务并提醒
    在Django中自动生成任务并提醒用户可以使用Django中的定时任务模块Celery和消息队列模块Redis结合使用。以下是一个基...
    99+
    2024-03-04
    django
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作