2011-01-10 87 views
1

我創建了一個Python鬧鐘,有一個簡單的問題,檢查時間:簡單的鬧鐘和每秒

我的鬧鐘的決議必須精確到秒。目前我有一個線程每0.5秒喚醒一次,並檢查是否有時間開始製造噪音。

我唯一擔心的是系統在某些時候會完全超載,並且鬧鐘沒有響,因爲鬧鐘線程在第二秒時間內仍然處於睡眠狀態,因此它應該檢查時間。

所以我的問題是,會檢查每0.05秒更好?或者有沒有辦法在python註冊一個事件處理程序的特定時間,所以我不必自己檢查時間。

+0

你可以發佈一些代碼給我們,知道你在做什麼? – 2011-01-10 20:38:14

回答

2

檢查定時器功能的標準signal module

此外,如果您已經知道何時觸發您的操作,爲何不在執行之前執行time.sleep(seconds)? (seconds應該是幾秒鐘內觸發該動作的時間,很明顯)

+0

如果只有一個事件需要檢查,如果用戶nevers改變時間,凍結進程或永遠不休眠系統,那很容易。 – BatchyX 2011-01-10 20:49:16

2

這不是最好的解決方案。不能保證你被鎖定超過一秒鐘。

你應該堅持0.5秒的分辨率(或者更糟,如果沒有生活依賴於它),並觸發事件時,它是在或過去到期時間,並保持每個事件的標誌,如果它已經被解僱。然後它會一直被激發一次,並且儘可能接近目標時間。