Python的进程与线程——DAY Two

一:多进程的创建与应用

#多进程创建及运行

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

猜你喜欢

转载自blog.csdn.net/qq_40760732/article/details/89408885
two