Python Threading Not Processed Parallel
I'm intermidiate bee for python and would like to run the same class instances of few in parallel mode for fetching data and decision making for financial market. To proceed my ide
Solution 1:
The problem is here:
threading.Thread(target=F.run())
threading.Thread(target=S.run())
target=
takes a callable object or None
. F.run()
executesF.run
immediately, waits for it finish, and then passes the return value (which is None
in your run()
method) as the target.
You want something like this instead:
t1 = threading.Thread(target=F.run)
t2 = threading.Thread(target=S.run)
t1.start()
t2.start()
Note that there's no parentheses after run
Here's the complete program with the suggested change:
import threading
import time
class thr(object):
def __init__(self, name):
self.name = name
self.x = 0
def run(self):
for i in list(range(10)):
self.x +=1print("something {0} {1}".format(self.name, self.x))
time.sleep(1)
F = thr("First")
S = thr("Second")
t1 = threading.Thread(target=F.run)
t2 = threading.Thread(target=S.run)
t1.start()
t2.start()
And output (Python 3.6.1):
$ python sf.py
something First1
something Second1
something Second2
something First2
something Second3
something First3
something Second4
something First4
something Second5
something First5
something Second6
something First6
something Second7
something First7
something First8
something Second8
something First9
something Second9
something First10
something Second10
Post a Comment for "Python Threading Not Processed Parallel"