python多线程或定时任务
1. 定时任务
from threading import Timer
def exit(msg):
print(msg)
os._exit(0)
if __name__ == '__main__':
t = Timer(5, exit, args=("timeout ……………… \nexit the process",))
# 5秒后启动关闭线程
t.start()
下图是上述代码的输出:
2. 多线程
class Server_Job(threading.Thread):
def __init__(self, *args, **kwargs):
super(Server_Job, self).__init__(*args, **kwargs)
self.__flag = threading.Event() # 用于暂停线程的标识
self.__flag.set() # 设置为True
self.__running = threading.Event() # 用于停止线程的标识
self.__running.set() # 将running设置为True
def run(self):
while self.__running.isSet() and cap.isOpened():
self.__flag.wait() # 为True时立即返回, 为False时阻塞直到内部的标识位为True后返回
print('hello')
time.sleep(1)
def pause(self):
self.__flag.clear() # 设置为False, 让线程阻塞
def resume(self):
self.__flag.set() # 设置为True, 让线程停止阻塞
def stop(self):
self.__flag.set() # 将线程从暂停状态恢复, 如何已经暂停的话
self.__running.clear() # 设置为False
在主函数中调用class就可以实现多个线程的功能,而且包括单个线程的阻塞、回复和停止的成员函数