python - Thread seems to be blocking the process -
class myclass(): def __init__(self): ... def start(self): colorthread = threading.thread(target = self.colorindicator()) colorthread.start() while true: print ('something') ... ...
i have print
statement inside colorindicator()
. statement getting printed. print statement inside while loop of start()
method isn't displayed on screen.
the colorindicator()
has infinite loop. gets data internet , updates counter. counter initialized inside __init__
self
variable , i'm using variable inside other methods.
i not understand why print
inside while not being executed.
colorindicator function:
def colorindicator(self): print ('something else') ... while (true): ... print ('here') time.sleep(25)
the output following:
something else here here
i stopped after that. so, colorindicator running completely. i'm calling script import
in python interpreter (in terminal). instantiate myclass
, call start
function.
you're not running colorindicator
in thread, because called in main thread, rather passing method (uncalled) thread target
. change:
colorthread = threading.thread(target=self.colorindicator()) # ^^ agh! call parens!
to:
# remove parens pass method, without calling colorthread = threading.thread(target=self.colorindicator) # ^ note: no call parens
basically, problem before ever construct thread
, it's trying run colorindicator
completion can use return value target
, wrong in multiple ways (the method never returns, , if did, wouldn't return callable suitable use target
).
wiki
Comments
Post a Comment