- 论坛徽章:
- 0
|
本帖最后由 昜羊 于 2016-05-23 15:20 编辑
原来的代码都是单线程执行的,效率太低。想用多线程改进提高效率,但完全没写过多线程的程序。。。
现在我的目的是这样:执行备份的时候,在计算md5部分的时候,进行多线程一起处理,增加效率
有一段代码是执行计算文件md5值的,有一段是实行备份的。有一段代码是生成线程的。望各位高手赐教
import os,hashlib,cPickle,multiprocessing
filesDir = '/root'
def md5sum(fname):
m = hashlib.md5()
with open(fname) as f:
while True:
data = f.read(4096)
if len(data) == 0:
break
m.update(data)
return m.hexdigest()
def Backup():
md5Dict = {}
os.chdir(filesDir)
timer = time.strftime('%Y-%m-%d_%H-%M')
tar = tarfile.open('%s/full_%s.tar.gz' % (tarDir,timer) , 'w:gz')
for (r ot,dirs,files) in os.walk('.'):
for i in files:
filesname = os.path.join(root,i)
md5 = md5sum(filesname)
tar.add('%s' % filesname)
md5Dict[filesname] = md5
with open('%s/md5.data' % md5Dir, 'w') as md5:
cPickle.dump(md5Dict,md5)
tar.close()
def mult():
record = []
for i in xrange(2):
process = multiprocessing.Process(target=work,args=(i,))
record.append(process)
process.start()
|
|