多进程

  • 多进程注意事项:必须在name=='main'内运行多进程
# -*- coding: utf-8 -*-
"""
最重要的是多进程必须在name==main内部。
"""
import pandas as pd
import numpy as np
import multiprocessing
import gc

def cv_svd(i):
    print(i)
    n=np.random.randn(10)
    return  i,n 
objects=['appIdAction','appIdInstall','interest1','interest2',\
                'interest3','interest4','interest5','kw1','kw2','kw3',\
                'topic1','topic2','topic3','os','ct','marriageStatus']

df=pd.DataFrame()
#most important is:multiprocessing must in __name__=='__main__'

if __name__=='__main__':
    __spec__ = "ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>)"
    pool=multiprocessing.Pool(4)    
    result=[]
    for i in objects:
        c=pool.apply(cv_svd,args={i,})
        result.append(c)
    pool.close()
    pool.join()
    for i in result:
        df[i[0]]=i[1]
    del result
    gc.collect()
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。