-
Notifications
You must be signed in to change notification settings - Fork 16
/
2.GetReturnValueFromThread.py
43 lines (32 loc) · 1.36 KB
/
2.GetReturnValueFromThread.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
##------------------------------------------------------------------------------------------------------
#Created By:Ravishankar Chavare
#version:python 3.7
#Date:10/04/2019
#File_des:How to get Return value from running Thread
##------------------------------------------------------------------------------------------------------
'''
To get Return value From thread function we can use queue
The queue module implements multi-producer, multi-consumer queues.
It is especially useful in threaded programming when information must be exchanged safely between multiple threads
'''
import queue #import queue
from threading import Thread #import Threading
#Simple Function retrun the value
def foo(val):
print('I am From Foo Function and val={0}'.format(val))
return val*val
#Create a Blank Queue for adding thread
que = queue.Queue()
#Create a anonymous function using lambda that will call foo() and and add that calling method to queue
#for further processing
fn=lambda q,arg1:q.put(foo(arg1))
#Now Normal Create A Thread using Threading.Thread(target=anomous function,args=(que,elements))
t = Thread(target=fn, args=(que, 5))
#Start That Thread
t.start()
#WAit Untill to Thread Execution
t.join()
#Now Main Part to get the result from foo Function call que.get() to get the return value
result = que.get()
#Print The Result Which is stored using que.get()
print(result)