在python中,我有两种方法。在方法A中,我接收参数并将其放入参数数组。在过程B中,我处理参数数组的数据,并将处理结果放入日志数组。我想通过方法A的final中的while循环获取读取日志数据的数据,并获取当前传递给A的参数的处理。结果,我想问一下当A为一半时如何暂停启动方法B -执行,否则A将无限循环。
添加睡眠方法希望A中断而B执行,但这无效。
def A()
try:
datas=request.get_data()
data=json.loads(datas)
global queque_list,log_list
queque_list.append("data":data)
finally:
while 1:
sleep(3)
if len(log_list)>0
for logdata in log_list:
if logdata.get('uuid')==uuid:
return logdata.get('msg')
def B(task):
try:
do(task)
finally:
log_list.append({"uuid":uuid,"msg":msg})
def C():
while True:
if len(queque_list)>0:
task=queque_list.pop(0)
B(task)
t=threading.Thread(target=C)
t.start()
我希望执行最终模块时方法A是否可以中断,并等待方法B完成执行后再执行。但是现在方法A执行了最终模块,方法B不执行,导致了无限循环
答案 0 :(得分:0)
您可以使用queue.Queue在线程之间发送消息,特别是put()方法发送消息,而get()方法等待另一个线程中的消息。有了这个,您就可以使线程步调一致地工作。
我不确定您要做什么,但是为了简单起见,也许您可以在一个线程中完成所有工作。