python 輪詢執(zhí)行某函數(shù)的2種方式
目標(biāo):python中每隔特定時(shí)間執(zhí)行某函數(shù)
方法1:使用python的Thread類的子類Timer,該子類可控制指定函數(shù)在特定時(shí)間后執(zhí)行一次:
所以為了實(shí)現(xiàn)多次定時(shí)執(zhí)行某函數(shù),只需要在一個(gè)while循環(huán)中多次新建Timer即可。
from threading import Timer
import time
def printHello():
print ("Hello")
print("當(dāng)前時(shí)間戳是", time.time())
def loop_func(func, second):
#每隔second秒執(zhí)行func函數(shù)
while True:
timer = Timer(second, func)
timer.start()
timer.join()
loop_func(printHello, 1)
運(yùn)行結(jié)果如下:
Hello 當(dāng)前時(shí)間戳是 1569224253.1897497 Hello 當(dāng)前時(shí)間戳是 1569224254.1911764 Hello 當(dāng)前時(shí)間戳是 1569224255.1924803 Hello 當(dāng)前時(shí)間戳是 1569224256.1957717 Hello 當(dāng)前時(shí)間戳是 1569224257.1964536 ……
方法2:使用time模塊的sleep函數(shù)可以阻塞程序執(zhí)行
import time
def printHello():
print ("Hello")
print("當(dāng)前時(shí)間戳是", time.time())
def loop_func(func, second):
# 每隔second秒執(zhí)行func函數(shù)
while True:
func()
time.sleep(second)
loop_func(printHello, 1)
運(yùn)行結(jié)果如下:
Hello 當(dāng)前時(shí)間戳是 1569224698.5843027 Hello 當(dāng)前時(shí)間戳是 1569224699.5843854 Hello 當(dāng)前時(shí)間戳是 1569224700.5870178 Hello 當(dāng)前時(shí)間戳是 1569224701.5881224 Hello 當(dāng)前時(shí)間戳是 1569224702.588771 Hello 當(dāng)前時(shí)間戳是 1569224703.5896 Hello 當(dāng)前時(shí)間戳是 1569224704.5902 ……
總結(jié):感覺方法2更節(jié)約資源,因?yàn)橥瑯邮褂昧藈hile循環(huán),方法2沒有生成多余的線程,但是方法1會(huì)生成很多的線程
以上這篇python 輪詢執(zhí)行某函數(shù)的2種方式就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python scipy實(shí)現(xiàn)差分進(jìn)化算法
差分進(jìn)化算法是廣義的遺傳算法的一種,核心思想是變異,這篇文章主要為大家介紹的則是著名的scipy庫中對(duì)差分進(jìn)化算法的實(shí)現(xiàn),希望對(duì)大家有所幫助2023-08-08
python?chinesecalendar報(bào)錯(cuò):"no?available?data?for?ye
這篇文章主要介紹了python?chinesecalendar報(bào)錯(cuò):“no?available?data?for?year?{},?only?year?between?[{},?{}]?supported“的相關(guān)知識(shí),需要的朋友可以參考下2023-03-03
基于Python實(shí)現(xiàn)簡易文檔格式轉(zhuǎn)換器
這篇文章主要介紹了基于Python和PyQT5實(shí)現(xiàn)簡易的文檔格式轉(zhuǎn)換器,支持.txt/.xlsx/.csv格式的轉(zhuǎn)換。感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2021-12-12
pytorch部署到j(luò)upyter中的問題及解決方案
這篇文章主要介紹了pytorch部署到j(luò)upyter中,在這里需要注意我再輸入的時(shí)候出現(xiàn)了一些無法定位的提示,但是我的電腦沒有影響使用jupyter,還是可以使用jupyter并且可以import torch,本文給大家講解的非常詳細(xì),需要的朋友參考下吧2022-05-05
PyCharm中的terminal運(yùn)行從PS修改成cmd方式
這篇文章主要介紹了PyCharm中的terminal運(yùn)行從PS修改成cmd方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06
Python自動(dòng)化處理Excel數(shù)據(jù)的操作過程
在實(shí)際數(shù)據(jù)處理和分析過程中,經(jīng)常會(huì)遇到需要從大量數(shù)據(jù)中提取出特定日期范圍內(nèi)的信息的需求,本文將介紹如何使用Python的pandas庫來處理Excel文件,感興趣的朋友跟隨小編一起看看吧2023-11-11

