Fork me on Github

多线程

一、多线程

进程是资源单位,线程是执行单位

每一个进程至少包括一个线程

 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("执行完毕!!!")

 

posted @ 2022-06-24 18:02  昂昂呀  阅读(34)  评论(0)    收藏  举报