python 线程与进程
本帖最后由 wcq15759797758 于 2021-7-25 16:12 编辑一.单进程单线程
import time
def work(n):
print(f'{n}打电话')
time.sleep(2)
print(f'{n}电话结束')
uesrlist = ['刘德华','张学友','梁朝伟']
for i in uesrlist:
work(i)
二.多进程
from multiprocessing import Process
import time,os
uesrlist = ['刘德华','张学友','梁朝伟']
def work(n):
print(f'{n}打电话,进程号为:{os.getpid()}')
time.sleep(2)
print(f'{n}电话结束,进程号为:{os.getpid()}')
def pol():
plist = []
for item in uesrlist:
#循环创建进程 target 当前要执行的函数
p = Process(target=work,args=(item,))
#启动进程
p.start()
#把进程加入到列表当中
plist.append(p)
#阻塞终止进程的执行
if __name__ == '__main__':
pol()
三.多线程
import time ,os
import threading
uesrlist = ['刘德华','张学友','梁朝伟']
def work(n):
print(f'{n}打电话,进程号为:{os.getpid()},线程号为:{threading.current_thread()}')
time.sleep(2)
print(f'{n}电话结束,进程号为:{os.getpid()},线程号为:{threading.current_thread()}')
def pol():
plist = []
for item in uesrlist:
#循环创建线程 target 当前要执行的函数
p = threading.Thread(target=work,args=(item,))
#生成线程
p.start()
#把进程加入到列表当中
plist.append(p)
#阻塞终止线程的执行
if __name__ == '__main__':
pol()
四.线程池
import time
import threading
from concurrent.futures import ThreadPoolExecutor
uesrlist = ['刘德华','张学友','梁朝伟','周杰伦','苏炳添']
def work(n):
print(f'{n}打电话,线程号为:{threading.current_thread()}')
time.sleep(2)
print(f'{n}电话结束,线程号为:{threading.current_thread()}')
def pol():
# 1 . 创建线程池
pool = ThreadPoolExecutor(max_workers=3)
# 2 . 循环指派任务 和参数
# 3 . 关闭线程池
pool.shutdown
if __name__ == '__main__':
pol() 感谢分享! 学习学习 {:9_228:} 感激不尽 {:10_254:} 谢谢 {:5_109:} 学习
页:
[1]