冥思苦想好几个小时,多线程一直只有第一个运行,在百度上搜了好久直到我发现了这个:
https://www.cnblogs.com/This-is-Y/p/12316801.html
def run():
threads = [
threading.Thread(target=detect1(args)), #, args=(self,)
threading.Thread(target=detect2(args)),
threading.Thread(target=detect3(args))
]
[thread.start() for thread in threads]
以上是问题代码,不要用**detect1(args)**形式传参!!!!!
threading.Thread(target=detect1, args=(args,))
把括号去掉,用这种形式传参才能多线程运作
以下是正确代码!!!!
def run():
threads = [
threading.Thread(target=detect1, args=(args,)), #, args=(self,)
threading.Thread(target=detect2, args=(args,)),
threading.Thread(target=detect3, args=(args,))
]
[thread.start() for thread in threads]