返回顶部
首页 > 资讯 > 后端开发 > Python >Python自带的优先级调度器有什么用
  • 602
分享到

Python自带的优先级调度器有什么用

2023-06-15 14:06:33 602人浏览 薄情痞子

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

摘要

本篇内容主要讲解“python自带的优先级调度器有什么用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python自带的优先级调度器有什么用”吧!Python 自带一个调度器模块sched,它能

本篇内容主要讲解“python自带的优先级调度器有什么用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习Python自带的优先级调度器有什么用”吧!

Python 自带一个调度器模块sched,它能为你实现优先级队列/延迟队列和定时队列。

这个模块的使用非常简单,首先以延迟队列为例:

import sched  def do_work(name):     print(f'你好:{name}')  sch = sched.scheduler() sch.enter(5, 1, do_work, argument=('kingname', )) sch.run()

代码运行以后,会卡在sch.run()这里,5秒钟以后执行do_work('kingname'),运行效果如下图所示:

Python自带的优先级调度器有什么用

其中,sch.enter()的第一个参数为延迟的时间,单位为秒,第二个参数为优先级,数字越小优先级越高。当两个任务同时要执行时,优先级高的先执行。但需要注意的是,如果你这样写:

import sched  def do_work(name):     print(f'你好:{name}')  sch = sched.scheduler() sch.enter(5, 2, do_work, argument=('产品经理', )) sch.enter(5, 1, do_work, argument=('kingname', )) sch.run()

那么先打印出来的是你好:产品经理,如下图所示:

Python自带的优先级调度器有什么用

为什么这里优先级失效了?1的优先级大于2,应该先运行下面的才对啊。

这是由于,只有当两个任务同时运行的时候,才会去检查优先级。如果两个任务触发的时间一前一后,那么还轮不到比较优先级。由于延迟队列的延迟是相对于当前运行这一行代码的时间来计算的,后一行代码比前一行代码晚了几毫秒,所以实际上产品经理这一行会先到时间,所以就会先运行。

为了使用绝对的精确时间,我们可以使用另外一个方法:

import sched import time import datetime  def do_work(name):     print(f'你好:{name}')  sch = sched.scheduler(time.time, time.sleep) start_time = datetime.datetime.now() + datetime.timedelta(seconds=10) start_time_ts = start_time.timestamp() sch.enterabs(start_time_ts, 2, do_work, argument=('产品经理', )) sch.enterabs(start_time_ts, 1, do_work, argument=('kingname', )) sch.run()

运行效果如下图所示:

Python自带的优先级调度器有什么用

sch.enterabc()的第一个参数是任务开始时间的时间戳,这是一个绝对时间,这个时间可以使用datetime模块来生成,或者其他你熟悉的方式。后面的参数和sch.enter()完全一样。

如果你要运行的函数带有多个参数或者默认参数,那么可以使用下面的方式传入参数:

import sched import time import datetime  def do_work(name, place, work='写代码'):     print(f'你好:{name},你在:{place}{work}')  sch = sched.scheduler(time.time, time.sleep) start_time = datetime.datetime.now() + datetime.timedelta(seconds=10) start_time_ts = start_time.timestamp() sch.enter(5, 2, do_work, argument=('产品经理', '杭州'), kwargs={'work': '写需求文档'}) sch.enterabs(start_time_ts, 1, do_work, argument=('kingname', '产品经理旁边'), kwargs={'work': '看着她'}) sch.run()

argument参数对应的元组存放普通参数,kwargs对应的字典存放带参数名的参数。

到此,相信大家对“Python自带的优先级调度器有什么用”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: Python自带的优先级调度器有什么用

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

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

猜你喜欢
  • Python自带的优先级调度器有什么用
    本篇内容主要讲解“Python自带的优先级调度器有什么用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python自带的优先级调度器有什么用”吧!Python 自带一个调度器模块sched,它能...
    99+
    2023-06-15
  • Kubernetes调度管理优先级和抢占机制是什么
    今天小编给大家分享一下Kubernetes调度管理优先级和抢占机制是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。基本介...
    99+
    2023-07-04
  • C#中抢占式优先级调度算法是什么意思
    本篇内容主要讲解“C#中抢占式优先级调度算法是什么意思”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#中抢占式优先级调度算法是什么意思”吧!系统把处理机分配给优先权最高的进程,使之执行。但在其...
    99+
    2023-06-20
  • PHP 中函数调用的优先级规则是什么?
    php 中函数调用的优先级遵循特定规则:括号强制优先级高于运算符优先级,且运算符遵循从左到右的关联性。步骤包括:识别函数调用、添加括号,并根据括号内的优先级顺序确定执行顺序。遵守这些规则...
    99+
    2024-04-17
    php 函数调用优先级
  • CSS选择器优先级的分类是什么
    这篇文章主要讲解了“CSS选择器优先级的分类是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“CSS选择器优先级的分类是什么”吧!一、优先级的分类我们可以把 CSS 的优先级从高到低来分成...
    99+
    2023-06-27
  • css选择器的优先级排序是什么
    CSS选择器的优先级排序如下:1. !important:具有最高优先级,会覆盖其他所有规则。2. 内联样式:通过style属性直接...
    99+
    2023-10-12
    css
  • css选择器优先级最高的是什么
    css 选择器优先级最高的是内联样式,它直接写在 html 元素的 style 属性中,具有最高的优先级,其他优先级依次为:id 选择器、类选择器、元素选择器、通配符选择器。 CSS选...
    99+
    2024-04-06
    css css选择器 html元素 id选择器
  • css样式的继承性、层叠性 、优先级有什么作用
    这篇文章主要讲解了“css样式的继承性、层叠性 、优先级有什么作用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“css样式的继承性、层叠性 、优先级有什么作用”吧! 一、css样式的继承性:...
    99+
    2023-06-05
  • c语言运算符优先级的作用是什么
    C语言运算符的优先级决定了表达式中运算符的执行顺序。当一个表达式中存在多个运算符时,编译器会按照优先级的顺序来确定运算的顺序,从而保...
    99+
    2023-09-23
    c语言
  • css选择器的优先级从高到低是什么意思
    css选择器优先级从高到低:行内样式id选择器类选择器标签选择器通用选择器 CSS 选择器优先级从高到低 CSS 选择器优先级决定了多个选择器应用到 HTML 元素时,哪个选择器将生效...
    99+
    2024-04-06
    css css选择器
  • Python自带的线程池和进程池有什么用
    这篇文章主要介绍“Python自带的线程池和进程池有什么用”,在日常操作中,相信很多人在Python自带的线程池和进程池有什么用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”...
    99+
    2024-04-02
  • Fastai中的学习率调度器有什么作用
    在Fastai中,学习率调度器的作用是根据训练过程中的不同阶段动态调整学习率,以提高模型训练的效果。学习率调度器可以帮助模型在训练过...
    99+
    2024-04-02
  • golang调度器的用法是什么
    Golang调度器是Go编程语言中的一种机制,用于协调并发执行的goroutine。调度器负责在可用的处理器上调度goroutine...
    99+
    2023-10-20
    golang
  • 使用大带宽服务器有什么优势
    更快的网站加载速度:大带宽服务器能够更快地传输数据,因此网站加载速度更快,用户体验更好。 更好的性能表现:大带宽服务器能够处...
    99+
    2024-05-06
    服务器
  • 租用大带宽服务器有什么优点
    租用大带宽服务器的优点包括: 高速的网络连接:大带宽服务器能够提供高速的网络连接,确保用户能够快速访问和传输数据。 更好的性...
    99+
    2024-05-06
    服务器
  • 大宽带的云服务器有什么优势
    大宽带云服务器的优势有:1、能够提升云服务器的传输速度;2、能够让云服务器的抗干扰能力更强,稳定性更高;3、具有优势的售后服务,能够及时帮助用户解决问题。具体内容如下:提升传输速度大带宽云服务器最主要就是可以有效实现双向数据同步传输,提升了...
    99+
    2024-04-02
  • 租用海外大带宽服务器有什么优势
    租用海外大带宽服务器的优势是:1、海外服务器的带宽大小对网站访问速度有着直接的影响,大带宽能提高网站的访问速度;2、在网络访问高峰时段,能有效提高网站的稳定性;3、能实现高防御能力的保证,有效抵御DDoS、CC等攻击;4、能满足多元化的网站...
    99+
    2024-04-02
  • 香港大带宽服务器租用有什么优势
    香港大带宽服务器租用具有以下优势: 稳定的网络连接:香港作为国际商业和金融中心,拥有先进的网络基础设施,保证了服务器的稳定性和可...
    99+
    2024-04-12
    香港服务器 服务器
  • 租用美国大带宽服务器有什么优势
    租用美国大带宽服务器有以下几个优势: 高速稳定的网络连接:美国拥有全球最先进的网络基础设施之一,大带宽服务器能够提供极高速度和稳...
    99+
    2024-04-26
    美国服务器 服务器
  • 租用美国大宽带服务器有什么优势
    租用美国大宽带服务器有以下优势: 高速稳定的网络连接:美国拥有发达的网络基础设施,租用美国大宽带服务器可以获得高速稳定的网络连接...
    99+
    2024-05-06
    服务器 美国服务器
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作