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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值