请问:如何编写一个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()
感谢@Ilja Everilä 的更正和改进
