91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python優先級調度器怎么使用

發布時間:2022-05-25 09:55:09 來源:億速云 閱讀:201 作者:iii 欄目:大數據

本篇內容主要講解“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優先級調度器怎么使用”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宁海县| 库伦旗| 马龙县| 财经| 景谷| 施甸县| 岳西县| 新干县| 阿鲁科尔沁旗| 延津县| 五河县| 新营市| 凤庆县| 和顺县| 烟台市| 布尔津县| 神农架林区| 郸城县| 玛多县| 武乡县| 滦南县| 南丰县| 日照市| 乳山市| 衡阳市| 旌德县| 峡江县| 松阳县| 伊春市| 林西县| 峨眉山市| 定结县| 中西区| 巴中市| 云安县| 云阳县| 奉新县| 常熟市| 金昌市| 慈溪市| 乌恰县|