如何访问从线程返回的值?
How to access the values returned from threads?
我是 multithreading 使用 Python 2.7.6 的新手。我需要在启动线程后获取线程返回的值。
我的代码如下:
from threading import Thread
from functions import *
class Client(Thread):
def __init__(self, index,ip,t,i=1):
Thread.__init__(self)
self.ip_dst = ip
self.t = t
def run(self):
value_back = execute(self.ip_dst,self.t,i=1)
return value_back
execute_client 函数 由每个线程 执行。我想在最后为每个线程获取 value_back 并将它们存储在列表数据结构中。 执行函数在我写的函数模块里面。
我看了这个 related issue 但不明白如何为我的代码调整答案。
采纳自您发布的 link,您应该这样做:
from Queue import Queue
from threading import Thread
from functions import *
class Client(Thread):
def __init__(self, someargs, queue):
Thread.__init__(self)
self.queue = queue
def run(self):
value_back = execute(self.ip_dst,self.t,i=1)
self.queue.put(value_back)
myqueue = Queue.Queue
myclient = Client(someargs, myqueue)
myclient.start()
并通过以下方式获取结果:
fetch = myqueue.get()
我现在解决了,非常感谢你们。
我所做的如下:
from Queue import Queue
from threading import Thread
from functions import *
class Client(Thread):
def __init__(self,myqueue):
Thread.__init__(self)
self.myqueue = myqueue
def run(self):
value_back = execute(self.ip_dst,self.t,i=1)
self.myqueue.put(value_back)
它奏效了。
大家好。
我是 multithreading 使用 Python 2.7.6 的新手。我需要在启动线程后获取线程返回的值。
我的代码如下:
from threading import Thread
from functions import *
class Client(Thread):
def __init__(self, index,ip,t,i=1):
Thread.__init__(self)
self.ip_dst = ip
self.t = t
def run(self):
value_back = execute(self.ip_dst,self.t,i=1)
return value_back
execute_client 函数 由每个线程 执行。我想在最后为每个线程获取 value_back 并将它们存储在列表数据结构中。 执行函数在我写的函数模块里面。
我看了这个 related issue 但不明白如何为我的代码调整答案。
采纳自您发布的 link,您应该这样做:
from Queue import Queue
from threading import Thread
from functions import *
class Client(Thread):
def __init__(self, someargs, queue):
Thread.__init__(self)
self.queue = queue
def run(self):
value_back = execute(self.ip_dst,self.t,i=1)
self.queue.put(value_back)
myqueue = Queue.Queue
myclient = Client(someargs, myqueue)
myclient.start()
并通过以下方式获取结果:
fetch = myqueue.get()
我现在解决了,非常感谢你们。 我所做的如下:
from Queue import Queue
from threading import Thread
from functions import *
class Client(Thread):
def __init__(self,myqueue):
Thread.__init__(self)
self.myqueue = myqueue
def run(self):
value_back = execute(self.ip_dst,self.t,i=1)
self.myqueue.put(value_back)
它奏效了。
大家好。