遇到同样的问题,
线程调用的方法里 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("出来了么")
结果打印了===> 出来了么
却没有执行打印 ===> 所有线程都结束了
收到一只叮咚
慕容3067478
相关分类