遇到同样的问题,
线程调用的方法里 while True 就跳不出这个线程 结束while循环 while 外面的
def startsendfile(self,filelist,taskpath,filetypepath):
for k in range(2):
# new_thread = threading.Thread(target=self.booth(k,filelist,taskpath,filetypepath))
new_thread = threading.Thread(target=self.booth,args=(k,filelist,taskpath,filetypepath))
# new_thread.setDaemon(True)
self.thread_list.append(new_thread)
for t in self.thread_list:
t.start()
for t in self.thread_list:
t.join()
print("所有线程都结束了", time_now())
线程调用方法
def booth(self,tid, filelist,taskpath,filetypepath):
global thread_data_num
global lock
while True:
self.lock.acquire()
print(self.thread_data_num)
if self.thread_data_num != 0:
self.thread_data_num = self.thread_data_num - 1
item = filelist[self.thread_data_num]
time.sleep(10)
else:
break
self.lock.release()
print("出来了么")
结果打印了===> 出来了么
却没有执行打印 ===> 所有线程都结束了
break
前没有释放锁,死锁了