t1=threading.Thread(target=self.read())
print("something")
t2=threading.Thread(target=self.runChecks(), args=(self,))
self.read
runs indefinitely, so the program won't ever reach the print
line. How is this possible without calling t1.start()
? (Even if I call that, it should start running and go on to the next line, shouldn't it?)
See also: What does it mean when the parentheses are omitted from a function call (supposing no arguments are necessary)? for a deeper understanding of the bug, and Python Argument Binders for a more general solution.