一:多进程的创建与应用
#多进程创建及运行
from multiprocessing import Pool #进程池
from time import sleep
import os,random
def run (name) :
print('子进程%d启动,进程号为%s'%(name,os.getpid()))
time.sleep(random.choice([1,2,3]))
print('子进程%d结束,进程号为%s,运行时间为%f'%(name,os.getpid(),time.process_time()))
if __name__=='__main__':
print('父进程启动')
p = Pool() #创建进程池
for i in range(6):
p.apply_async(run,args=(i,)) #创建进程
p.close()
p.join()
print('父进程结束')
二:用多进程复制文件
1.不使用进程的情况
import os,time
def trans(hu,hj):
fr = open(hu,'rb')
ft = open(hj,'wb')
text = fr.read()
ft.write(text)
fr.close()
ft.close()
hu = r'F:\1'
hj = r'F:\2'
a = os.listdir(hu)
r= time.clock()
for i in a:
trans(os.path.join(hu,i),os.path.join(hj,i))
2.多进程拷贝
from multiprocessing import Pool
import os,time
def trans(hu,hj):
fr = open(hu,'rb')
ft = open(hj,'wb')
text = fr.read()
ft.write(text)
fr.close()
ft.close()
if __name__=='__main__':
hu = r'F:\1'
hj = r'F:\2'
p = Pool()
a = os.listdir(hu)
for i in a:
p.apply_async(trans,args=(os.path.join(hu,i),os.path.join(hj,i)))
p.close()
p.join()