首页 > IT职业 > IT生活 > python3爬虫中如何防止多线程出错?

最近的温度已经能感受到寒冬的冷意了,动物们的迁徙也早就完成。那么大家应该知道,为了防止迁徙途中走错路,动物的集体迁徙是有一个领头的,它会带领集体走向更温暖的地带,可能这点平时我们没怎么注意过。这种应用在多线程中也有体现,为了不让其他的线程出现混乱,都会有一个主线程进行控制,这就是领头的作用,接下来让我们看看主线程如何防止其它线程出错吧。
python线程的事件用于主线程控制其他线程的执行,事件是一个简单的线程同步对象,其主要提供以下几个方法:
clear 将flag设置为“False”
set 将flag设置为“True”
is_set 判断是否设置了flag
wait 会一直监听flag,如果没有检测到flag就一直处于阻塞状态
事件处理的机制:全局定义了一个“Flag”,当flag值为“False”,那么event.wait()就会阻塞,当flag值为“True”,那么event.wait()便不再阻塞。
#利用Event类模拟红绿灯
import threading
import time
event = threading.Event()
def lighter():
count = 0
event.set() #初始值为绿灯
while True:
if 5 < count <=10 :
event.clear() # 红灯,清除标志位
print("33[41;1mred light is on...
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/2231/viewspace-2832058/ ,如需转载,请注明出处,否则将追究法律责任。