多线程
一、多线程
进程是资源单位,线程是执行单位
每一个进程至少包括一个线程
1 from threading import Thread 2 3 4 # 单线程 5 def func(): 6 for i in range(100): 7 print("func-----", i) 8 9 10 if __name__ == '__main__': 11 func() 12 for i in range(100): 13 print("main----------------------", i) 14 15 16 # 多线程 17 18 19 def func(): 20 for i in range(1000): 21 print("func", i) 22 23 24 if __name__ == '__main__': 25 t = Thread(target=func) # 创建线程并给线程安排任务 26 t.start() 27 for i in range(1000): 28 print("main", i) 29 30 31 # 多线程(类) 32 33 34 class MyThread(Thread): 35 def run(self): 36 for i in range(100): 37 print("子线程--", i) 38 39 40 if __name__ == '__main__': 41 t = MyThread() 42 t.start() 43 for i in range(100): 44 print("主线程--------", i)
二、线程池
1 # 线程池:一次性开辟多个线程,用户给线程池提交任务,线程任务的调度交给线程池完成 2 from concurrent.futures import ThreadPoolExecutor 3 4 5 def func(name): 6 for i in range(100): 7 print(name, i) 8 9 10 if __name__ == '__main__': 11 # 创建线程池 12 with ThreadPoolExecutor(50) as t: 13 for i in range(100): 14 t.submit(func, name=f"线程{i}") 15 print("执行完毕!!!")

浙公网安备 33010602011771号