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()







    

posted @ 2022-08-16 17:44  雪夜羽  阅读(330)  评论(0编辑  收藏  举报