pythonポーリングは、関数の2つの方法を実行します。
ターゲット:pythonでは、特定の時間ごとに関数を実行します。
方法1:pythonのThread類のサブクラスTimerを使用して、このサブクラスは指定関数を制御して、特定の時間後に一回実行します。
したがって、複数のタイミングである関数を実行するためには、一つのwhileサイクルの中で何度もTimerを新規作成するだけでよい。
以上のpythonポーリングはある関数の2つの方法を実行します。つまり、小編集は皆さんに全部の内容を共有します。参考にしてもらいたいです。どうぞよろしくお願いします。
方法1:pythonのThread類のサブクラスTimerを使用して、このサブクラスは指定関数を制御して、特定の時間後に一回実行します。
したがって、複数のタイミングである関数を実行するためには、一つのwhileサイクルの中で何度もTimerを新規作成するだけでよい。
from threading import Timer
import time
def printHello():
print ("Hello")
print(" ", time.time())
def loop_func(func, second):
# second func
while True:
timer = Timer(second, func)
timer.start()
timer.join()
loop_func(printHello, 1)
運転結果は以下の通りです。
Hello
1569224253.1897497
Hello
1569224254.1911764
Hello
1569224255.1924803
Hello
1569224256.1957717
Hello
1569224257.1964536
……
方法2:timeモジュールのsleep関数を使ってプログラムをブロックして実行できます。
import time
def printHello():
print ("Hello")
print(" ", time.time())
def loop_func(func, second):
# second func
while True:
func()
time.sleep(second)
loop_func(printHello, 1)
運転結果は以下の通りです。
Hello
1569224698.5843027
Hello
1569224699.5843854
Hello
1569224700.5870178
Hello
1569224701.5881224
Hello
1569224702.588771
Hello
1569224703.5896
Hello
1569224704.5902
……
まとめ:感じ方2はもっと資源を節約します。同じようにwhileサイクルを使っていますので、方法2は余分なスレッドを生成していません。しかし、方法1は多くのスレッドを生成します。以上のpythonポーリングはある関数の2つの方法を実行します。つまり、小編集は皆さんに全部の内容を共有します。参考にしてもらいたいです。どうぞよろしくお願いします。