-1

次の問題があります。毎分実行されるプログラムが必要です。これは、python の time-module と無限の while-loop を使用して行うことができました。次のようになります。

while True:
    time_now = tm.gmtime(tm.time())
    min_now = time_now.tm_min

    if min_now - min_then == 1 or min_now - min_then == -59:

        min_then = min_now

        ......

ループは 1 秒間に約 150.000 回実行されます。一般的なパフォーマンスが損なわれることはないと思いますが、代替手段があるかどうかは疑問です。

while ループの再実行回数を変更できますか? それとも、アルゴリズム (アセンブラー、マシンコードなど) は、終了時に最初に戻るだけですか? 「待機」コマンドのようなものを使用できますか?それは役に立ちますか?

聞いてくれて (そして答えてくれてありがとう ;) ),

幸運をお祈りしています、

マックス

編集:

-sleepコマンドは確かに私の問題を解決しました。再放送は 1 時間ごとに行わなければならないことを忘れてしまいました。60 秒間のスリープは満足のいくものではありませんが、Xi Huan のリンクに記載されている方法を使用しました。ループの実行後、sleep(59.9-time_now.tm_sec). これにより、CPU 使用率が 1% に減少します。優秀な。そして: 皆様、ご協力ありがとうございました! 私はあなたに賛成票を投じたいのですが、私には十分な評判がありません:D sry

さよなら!

4

3 に答える 3

3

簡単な方法は、ループでスリープすることです。

import time

while True:
    # do some stuff
    time.sleep(60) #sleeps for a minute

編集:これが機能するには、「時間をインポート」する必要があることにも注意してください。また、ループ回数を制限したい場合、これは便利です。以下の例では、1 分間に 1 回ループし、合計で 10 回ループします。

import time

for x in xrange(0, 10):
    #do stuff
    time.sleep(60)
于 2013-11-13T11:58:57.520 に答える
0

time.sleepメソッドを使用します。

import time
while True:
    #do something
    time.sleep(60)
于 2013-11-13T12:08:50.027 に答える