# -*- encoding: utf-8 -*-
from datetime import datetime
import threading
import time
from oslo_utils import timeutils
'''
1 threading.Event
作用: 用于线程间通信的变量,本质是一个类似布尔值的变量。
常用方法:
is_set(): 判断该变量是否为空,默认为空
set(): 设置该变量的值为True
clear(): 清空该变量,即设置值为False
wait(timeout): 等待一定时间,超时则不再等待,可用于线程sleep
2 一种用threading.Event模拟time.sleep的方法
def useEventSimulateSleep(event, interval):
while not event.is_set():
with timeutils.StopWatch() as timer:
elapsed = timer.elapsed(0)
diff = interval - elapsed
timeout = max(0, diff)
print "time: {curTime}, elapsed: {elas}, timeout: {timeout}".format(
elas=elapsed, timeout=timeout,
curTime=datetime.now()
)
event.wait(timeout)
event.set()
参考:
https://blog.csdn.net/tjcwt2011/article/details/80764765
https://www.jb51.net/article/1
python 64式: 第34式、threading的Event用法
最新推荐文章于 2023-08-14 22:45:21 发布