应用场景:本人需要对200万条网页的文字进行分词过滤并写入数据库中,之前做了一次,大概话费了80多个小时才跑完,机器配置是4核的,内存8G;
开完会领导让再改点东西重新跑一遍,然后说用多进程或者多线程跑,本人接触python不到两个月,以前也基本不怎么编程,所以这种优化什么的东西都不懂,只好求助同事。
同事告诉我直接看廖雪峰的教程就ok了,下面这个网址是廖雪峰的教程网址,多进程www.liaoxuefeng.com
看了一下多进程的代码,还算好懂,自己先看了一下他写的单个进程的代码,比较容易懂,但是我需要开四个进程,把我的cpu都占满来跑,这样效率才最大。
接着我看了一下如何开多个进程的栗子,首先我自己写了个小栗子跑了一下:
frommultiprocessing importProcess
importos
frommultiprocessing importPool
defrun_proc(i):
a=i*3
print(a)
if__name__=='__main__':
p = Pool(4)
fori inrange(5):
p.apply_async(run_proc, args=(i,))
p.close()
p.join()
可以看到,非常简单的一个功能,就是Pool代表的是一个进程池,里面写几