gpt4 book ai didi

python - 如何从多线程中获取值?

转载 作者:行者123 更新时间:2023-12-03 13:02:39 24 4
gpt4 key购买 nike

class Return_Thread_Value(object):
def __init__(self,target = None,args = (),**kwargs):
self._que = queue.Queue()
self._t = Thread(target = lambda q,arg1,kwargs1: q.put(target(*arg1,**kwargs1)),
args=(self._que,args,kwargs), )
self._t.start()

def Return_Value(self):
self._t.join()
return self._que.get()

Thread_1 = Return_Thread_Value(target = Walking_Inputs,args = (
WINDOW,CLOCK,Hero,FRAME,INTERACTING,TOP_SCREEN,POSITION_DATA,BACKGROUND,
FOREGROUND_OPAQUE,FOREGROUND_TRANSLUCENT,INPUT,INPUT_SHIFT,PROMPT_SHIFT,Input,
ENTERED))

INTERACTING,TOP_SCREEN,Input,ENTERED = Thread_1.Return_Value()

Thread_2 = Return_Thread_Value(target = Key_Inputs,args = (
WINDOW,ENTERED,PROMPT_SHIFT,INPUT,INPUT_SHIFT,CAPITAL,Input))

ENTERED,PROMPT_SHIFT,INPUT,INPUT_SHIFT,CAPITAL,Input = Thread_2.Return_Value()

尝试运行两个函数,一个可以让您在村庄中走来走去,另一个可以接受键输入,这两个函数都在运行,但是我不确定是否返回了值。

最佳答案

它们的线程将各自具有自己的作用域,以将数据传递回其父线程,最简单的方法是定义任何对象,例如dict return_value = {},并将其作为arg传递给您的线程。

将您想返回的值设置为字典中的键(return_value['thread1return']='something'),那么您应该可以在父线程中访问它

关于python - 如何从多线程中获取值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58866092/

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