要让Python程序挂起,可以使用`time.sleep`函数,该函数会让当前线程暂停执行指定的秒数。以下是一个简单的例子:
import time
def main():
while True:
执行任务
print("执行任务...")
挂起10秒
time.sleep(10)
if __name__ == "__main__":
main()
在这个例子中,程序会无限循环执行任务,并在每次执行任务后挂起10秒。
如果你想要更复杂的挂起机制,比如根据某些条件决定是否挂起,你可以使用线程锁和条件变量来实现。例如:
from threading import Thread, Lock, Condition
class StoppableThread(Thread):
def __init__(self):
super().__init__()
self._terminate = False
self._suspend_lock = Lock()
self._condition = Condition(self._suspend_lock)
def terminate(self):
with self._condition:
self._terminate = True
self._condition.notify_all()
def suspend(self):
with self._condition:
self._condition.wait()
def resume(self):
with self._condition:
self._condition.notify_all()
def run(self):
while True:
with self._condition:
while not self._terminate:
self._condition.wait()
执行任务
print("执行任务...")
在这个例子中,`StoppableThread`类继承自`Thread`类,并添加了挂起和恢复的功能。`_condition.wait()`方法会让当前线程等待,直到被通知继续执行。`_condition.notify_all()`方法会唤醒所有等待的线程。
请注意,在使用多线程时,要确保线程安全,避免竞态条件。