import threadingimport timedef t_job(): print('T1 start') for i in range(10): time.sleep(0.1) print('T1 stop')def t_job2(): print('T2 stop')def main(): # 创建一个线程 , 并给与任务 addThread = threading.Thread(target = t_job, name = 'T1') # 开始一个线程 addThread.start() # 等待执行完成 addThread.join() thread2 = threading.Thread(target = t_job2, name = 'T2') thread2.start() thread2.join() print('all done\n') # # 查看当前线程数量 # print(threading.active_count()) # # 查看开启的所有线程 # print(threading.enumerate()) # # 正在运行的线程 # print(threading.current_thread())if __name__ == '__main__': main()
多线程执行任务
import threadingimport timefrom queue import Queuedef job(data, q): for i in range(len(data)): data[i] = data[i] ** 2 # 将每次的运算结果假如到队列 q.put(data)def multi(): q = Queue() # 保存每个线程的实例 threads = [] data = [ [1, 2, 3], [2, 2, 3], [1, 2, 1], ] # 启动所有线程 for i in range(len(data)): # 将不同的数据列表分别传入不同线程 thread = threading.Thread(target = job, args = (data[i], q)) thread.start() # 添加到所有线程 threads.append(thread) # 加载到主线程 for thread in threads: thread.join() # 保存结果 results = [] for _ in range(len(data)): # 按照队列取数据 results.append(q.get()) print(results)if __name__ == '__main__': multi()