0
私はPythonで関数を持っていて、かなり高速ですので、1秒あたり10000回のようなループで呼び出すことができます。Pythonで時間の経過とともに均等に関数呼び出しが呼び出される
私は2000年に1秒間を呼び出しますが、呼び出し間に均等な間隔を置いて呼び出したいとします(2000回の呼び出しと2番目の呼び出しの終了まで)。どのように私はこれをPythonで達成することができますか?
私はPythonで関数を持っていて、かなり高速ですので、1秒あたり10000回のようなループで呼び出すことができます。Pythonで時間の経過とともに均等に関数呼び出しが呼び出される
私は2000年に1秒間を呼び出しますが、呼び出し間に均等な間隔を置いて呼び出したいとします(2000回の呼び出しと2番目の呼び出しの終了まで)。どのように私はこれをPythonで達成することができますか?
汎用のスケジューラを実装する組み込みのsched
モジュールを使用できます。 s.enter
方法を使用
import sched, time
# Initialize the scheduler
s = sched.scheduler(time.time, time.sleep)
# Define some function for the scheduler to run
def some_func():
print('ran some_func')
# Add events to the scheduler and run
delay_time = 0.01
for jj in range(20):
s.enter(delay_time*jj, 1, some_func)
s.run()
は、イベントが入力された場合に比べて遅れてスケジューラにイベントを置きます。 s.enterabs
を使用して、特定の時刻にイベントが発生するようにスケジュールすることもできます。
Pythonの[sleep()](http://www.tutorialspoint.com/python/time_sleep.htm)メソッドを調べましたか?すべての関数呼び出しの前に呼び出すことができます。自分の状況に最も適した時間(ミリ秒単位)を把握するだけで済みます。 – Xetnus
呼び出される場所によって異なります。素朴な方法は 'time.sleep(1/2000) 'を呼び出すことですが、それは2000x/secであることは保証されておらず、あなたの望むものではないかもしれないあなたの全プロセスを寝かせることができます。 –
はい、私はそれを見てきましたが、私はこれを見つけました:http://stackoverflow.com/questions/1133857/how-accurate-is-pythons-time-sleep あなたが頼ることができないように見えます高周波数/低遅延用 – pushist1y