gpt4 book ai didi

python - 让 Python 等待函数完成后再继续执行程序

转载 作者:太空宇宙 更新时间:2023-11-03 17:57:41 28 4
gpt4 key购买 nike

我有一个我编写的Python程序。这个 python 程序调用我也编写的模块中的一个函数,并向其传递一些数据。

程序:

def Response(Response):
Resp = Response
def main():
myModule.process_this("hello") #Send string to myModule Process_this function
#Should wait around here for Resp to contain the Response
print Resp

该函数对其进行处理并将其作为响应传回主程序中的 Response 函数。

我的模块:

def process_this(data)
#process data
program.Response(data)

我检查过,所有数据都正确传递。我省略了所有导入和数据处理,以使这个问题尽可能简洁。

我需要找到某种方法让 Python 等待 resp 实际包含响应,然后再继续执行程序。我一直在寻找线程和使用信号量或使用队列模块,但我不是 100% 确定如何将它们合并到我的程序中。

最佳答案

这是一个使用队列和线程模块的可行解决方案。注意:如果您的任务受 CPU 限制而不是 IO 限制,则应使用 multiprocessing相反

import threading
import Queue

def worker(in_q, out_q):
""" threadsafe worker """
abort = False
while not abort:
try:
# make sure we don't wait forever
task = in_q.get(True, .5)
except Queue.Empty:
abort = True
else:
# process task
response = task
# return result
out_q.put(response)
in_q.task_done()
# one queue to pass tasks, one to get results
task_q = Queue.Queue()
result_q = Queue.Queue()
# start threads
t = threading.Thread(target=worker, args=(task_q, result_q))
t.start()
# submit some work
task_q.put("hello")
# wait for results
task_q.join()
print "result", result_q.get()

关于python - 让 Python 等待函数完成后再继续执行程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28258196/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com