代码之家  ›  专栏  ›  技术社区  ›  RustyShackleford

如何确认正在使用多处理库?

  •  0
  • RustyShackleford  · 技术社区  · 4 年前

    如何确认我使用的是库而不是for循环?

    from multiprocessing import Pool
    from multiprocessing import cpu_count
    import requests 
    import pandas as pd
    
    data= pd.read_csv('~/Downloads/50kNAE000.txt.1' ,sep="\t", header=None)
    data = data[0].str.strip("0    ")
    
    lst = []
    
    def request(x):
        for i,v in x.items():
            print(i)
            file = requests.get(v)
            lst.append(file.text)
        #time.sleep(1)
    
    if __name__ == "__main__":
        pool = Pool(cpu_count())
        results = pool.map(request(data))
        pool.close()  # 'TERM'
        pool.join()   # 'KILL'
    
    1 回复  |  直到 4 年前
        1
  •  1
  •   Mark Tolonen    4 年前

    多处理有开销。它必须通过进程间机制启动进程并传递函数数据。仅仅在另一个进程中运行一个函数与正常运行同一个函数相比总是要慢一些。优势在于 在使开销最小化的功能中进行大量的工作。

    你可以打电话 multiprocessing.current_process().name 查看进程名称更改。