how to get the return value of a thread?
Benjamin Niemann
pink at odahoda.de
Fri Sep 9 16:41:45 EDT 2005
Leo Jay wrote:
> Dear all,
>
> i would like to get the return value of all threads
>
> e.g.
> def foo(num):
> if num>10:
> return 1
> elif num>50:
> return 2
> else
> return 0
>
>
> after i invoked
> t = thread.start_new_thread(foo,(12,))
> how to get the return value of `foo'?
Take a look at the Queue module. Create a queue instance at let the 'foo
thread' put() its result into it:
fooResult = Queue.Queue()
def foo(num):
result = 0
if num>10:
result = 1
elif num>50:
result = 2
fooResult.put(result)
t = thread.start_new_thread(foo,(12,))
# do other stuff, foo is running in background
r = fooResult.get() # guaranteed to block until result is available
print r
--
Benjamin Niemann
Email: pink at odahoda dot de
WWW: http://www.odahoda.de/
More information about the Python-list
mailing list