Python如何中断当前方法以执行另一个方法[关闭]

时间:2019-08-05 11:56:25

标签: python multithreading function

在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不执行,导致了无限循环

1 个答案:

答案 0 :(得分:0)

您可以使用queue.Queue在线程之间发送消息,特别是put()方法发送消息,而get()方法等待另一个线程中的消息。有了这个,您就可以使线程步调一致地工作。

我不确定您要做什么,但是为了简单起见,也许您可​​以在一个线程中完成所有工作。