1
time.sleep()
関連スレッドを終了しましたが、まだ応答が見つかりませんでした。したがって、私は見ている問題で質問を投稿します。python time.sleepが予想以上に時間がかかります(マルチスレッド)
私は完全なコードにアクセスすることはできません。
がdef my_debug(self, msg):
logging.debug(msg, extra={'threadname':threading.currentThread().name})
while True:
next = time.time() + INTERVAL # INTERVAL = 5
my_debug("Triggering event")
# some code
# some more code
sleep_time = max(next - time.time(), 0)
my_debug("Sleeping for %d sec" % sleep_time)
time.sleep(sleep_time)
これが生成します:
2017-01-11 00:08:03 DEBUG MainThread Sleeping for 4 sec
2017-01-11 00:08:21 DEBUG MainThread Triggering event
はどうやら、他のスレッドがあるとwhileループがMainThreadに実行ここで私はへのアクセスをしたし、問題を見ていたコードの抜粋です。 time.sleepは4秒間スリープするはずですが、18秒間待つことになります。
この現象を引き起こす可能性がある理由とシナリオを探しています。
本当にありがとうございます。
そのコードはすでに実行されています。ログを見ると、2つのログ行は連続しており(最後の行の行と2番目の行の行)、その間に睡眠があります。 – Sharad
ログファイルをいくつか追加できますか? –
私は現時点でそれを持っていません(私はアクセスが制限されていると言いました)。私はいくつかの詳細を集めようとしています。 – Sharad