python不输出warning信息和多线程多进程
python 不输出warning信息
加入 -W ignore 参数
Python -W ignore XXX.py
Python 多进程
同一函数执行多进程,使用 apply_async 函数
参考
https://www.cnblogs.com/ailiailan/p/11850710.html
import multiprocessing
def fun1(param) :
return
param=['param1','param2','param3']
with multiprocessing.Pool() as p:
p.apply_async(fun1,args=(param,))
p.close()
p.join()
multiprocessing.Pool(3) 可以传递参数,进程数量为3
示例代码
import multiprocessing
import time
def fun1(i) :
time.sleep(5)
print(i)
return
# fun1(1)
if __name__ == '__main__':
t1=time.time()
with multiprocessing.Pool(5) as p:
p.apply_async(func=fun1,args=(1,))
p.apply_async(func=fun1,args=(2,))
p.apply_async(func=fun1,args=(3,))
p.apply_async(func=fun1,args=(4,))
p.close()
p.join()
print(time.time()-t1)
输出结果
1
2
3
4
9.192536354064941
注意 在windows平台需要使用if __name__ == '__main__':
参考 https://blog.csdn.net/xixihahalelehehe/article/details/127552253
配合 tqdm 进度条 和 获取多进程的结果
from tqdm import tqdm
import multiprocessing
import time
a=range(0,10,1)
b=range(0,20,1)
def run(i):
time.sleep(1)
# print(".",end="")
return i
result = []
with multiprocessing.Pool(2) as p:
for i in tqdm(p.imap(run,(i for i in a)),total=len(a)):
result.append(i)
p.close()
p.join()
print(result)
输出结果
100%|███████████████████████████████████████████████████████████| 10/10 [00:05<00:00, 2.00it/s]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
python多线程
参考
https://www.jb51.net/article/210541.htm
import threading
def job(param):
return
t1=threading.Thread(target=job,args=(param1,),name='job1')
t2=threading.Thread(target=job,args=(param2,),name='job2')
t1.start()
t2.start()
t1.join()
t2.join()