前提:定义锁
lock = threading.Lock()
其次:如果lock.acquire()请求不到锁,会一直等待,等请求到锁后再打开文件写入。
acquire()中有一个blocking=true,请求不到锁就一直阻塞在if lock.acquire():这一句。
即,文件写入一定会执行,
# 保存数据
if lock.acquire():
with open('job1.txt', 'a', encoding='utf-8')as fp:
fp.write(response + '\n')
lock.release() # 释放锁