Skip to main content
 首页 » 编程设计

python之如何计算自 python 程序启动以来已经过去了 1 小时

2025年05月04日27EasonJim

请问:如何编写一个python程序来计算我们启动一个python程序已经过了1小时?

我举个例子: - 我们在 17:00:00 启动了 python 程序 - 运行 1 小时后(18:00:00),python 程序将打印一条消息,通知 1 小时已过。

我可以想出一个 python 程序。首先,我记录启动程序的时间(称为start_time),然后我连续记录下一次(称为end_time)。如果 (end_time - start_time == 1 小时),它会打印一条消息。

但是这个程序似乎浪费了太多的CPU性能!我需要一个占用更少 CPU 性能的程序。

编辑: 我需要如下。

我有一个线程名称wait_an_event_thread。它是一个阻塞线程。如果未设置事件 trigger,则此线程将被阻塞。 在阻塞时间内,如果已经过去 1 小时,则该线程打印出一条消息。 这是我的期望。

之前说了下次继续记录(调用end_time)。这意味着我打算从阻塞线程更改为非阻塞线程,因为如果 1 小时过去了,我不知道如何在阻塞线程中打印消息。但似乎非阻塞线程占用了如此多的 CPU 性能。

这是我的代码:
我的期望:阻塞线程

def wait_an_event_thread(trigger): 
    trigger.wait() 
    # If 1 hour has been passed, it print a message 
    # How to print message if 1 hour has been passed in this blocking thread if the "trigger" event is not set?? 
 
trigger  = threading.Event() 
wait_an_event_thread = threading.Thread(name='wait_an_event_thread',  
                       target=wait_an_event_thread, 
                       args=(trigger,)) 
wait_an_event_thread.start() 

请您参考如下方法:

import threading 
 
def func(): 
    #your code here 
 
t = threading.Timer(3600, func) 
t.start() 

More details in documentation

感谢@Ilja Everilä 的更正和改进