你有多長時間可以用time.sleep()指定一個線程睡眠的上限?我一直在長時間睡眠我的腳本(即超過1k秒)。這個問題已經出現在Windows和Unix平臺上。Python中的上限time.sleep()?
回答
我想時間越長就越有可能situation described in the docs:
The actual suspension time may be less than that requested because any caught signal will terminate the
sleep()
following execution of that signal’s catching routine. Also, the suspension time may be longer than requested by an arbitrary amount because of the scheduling of other activity in the system.
複製和粘貼的奇蹟......(見艾麗本的答案)。但是,+1包含鏈接源。 – Boldewyn 2009-12-21 16:49:46
@Boldewyn:只是因爲我的firefox被凍結了,我3秒後才eli。 – SilentGhost 2009-12-21 16:54:01
@Boldewyn:但是我們確實提供了不同的評估。 – SilentGhost 2009-12-21 16:55:22
細則中指出:
Suspend execution for the given number of seconds. The argument may be a floating point number to indicate a more precise sleep time. The actual suspension time may be less than that requested because any caught signal will terminate the sleep() following execution of that signal’s catching routine. Also, the suspension time may be longer than requested by an arbitrary amount because of the scheduling of other activity in the system.
一無所知這裏的時間限制。當然,1K秒並不多,應該沒有問題。
根據該文件,time.sleep接受任何非零數字[1],因爲你可能知道。但是,您也受到操作系統調度程序的影響[1]。
對不起,在發佈之前沒有看到其他答案。 – zpon 2009-12-21 16:54:59
其他人解釋你爲什麼會睡不到你要的,但沒有告訴你如何處理這個問題。如果你需要確保你的睡眠至少n秒,你可以使用如下代碼:
from time import time, sleep
def trusty_sleep(n):
start = time()
while (time() - start < n):
sleep(n - (time() - start))
這可能睡了N多,但它永遠不會沉睡至少n秒之前返回。
+1不會犯同樣的錯誤@mykhal所做的,其中小增量的累積效果會增加,導致明顯比所需的更多的總睡眠。 – 2009-12-21 19:10:06
實際答案,至少在我的機器上: 4294967.2950000003911900999 ...秒。
sleep(4294967.2950000003911901)
OverflowError:睡眠長度過大
你是如何獲得這個數字的? – SherylHohman 2017-12-28 21:11:43
- 1. Python time.sleep無限期
- 2. Python time.sleep
- 3. Python的time.sleep()掛起
- 4. Python Tkinter time.sleep()
- 5. python按鍵來中斷time.sleep()
- 6. Python subprocess.Popen()後跟time.sleep
- 7. time.sleep in python exceution order
- 8. Python:高精度time.sleep
- 9. time.sleep(x)與Python的變量
- 10. Python的time.sleep - 永不醒來
- 11. ruby中python的time.sleep的等效
- 12. Python中的time.sleep和多線程問題
- 13. 在Python 3.3中的time.sleep()函數?
- 14. 奇怪ioError在time.sleep()在Python
- 15. Python time.sleep()沒有睡覺
- 16. 而和time.sleep()未在python
- 17. Python - is time.sleep(n)cpu密集?
- 18. python無限循環和time.sleep()有什麼不對嗎?
- 19. 使用time.sleep的Python上的簡單websocket服務器
- 20. 如何暫停Python的time.sleep()函數?
- 21. 打印vs帶time.sleep的python返回
- 22. Python的pyautogui.PAUSE和time.sleep有什麼區別?
- 23. 沒有time.sleep的Python循環延遲
- 24. time.sleep中的PyAudio行爲()
- 25. Python time.sleep()運行到浮點異常
- 26. Python time.sleep花費時間更長
- 27. Python 2.7 time.sleep()與畫布Tkinter(OS X)
- 28. Jython的2.5.3和time.sleep
- 29. 在Python中使用APSchedule和time.sleep()之間的區別
- 30. Spyder中的Python time.sleep:如何在打印語句之間暫停?
是的,有一個上限:當有人絆倒你的機器;-) – Boldewyn 2009-12-21 16:42:51
「問題」您有什麼的電源線?請明確點。 – 2009-12-21 16:48:07
我的猜測是它是平臺特定的,但我沒有足夠的知識來推測任何事情。 – Boldewyn 2009-12-21 16:50:38