您的位置:首页 > 编程语言 > Python开发

重新学习python线程应用使用thread类,改写程序

2008-09-21 23:28 666 查看
#!/usr/bin/env python

#-*- coding: cp936 -*-

#===============================================================================

# 1、将原程序改为多线程

# 2、加入线程之间的互斥和锁操作

# 3、当其中一个线程执行完成后通知锁对象将该线程释放

#===============================================================================

import os,time,thread

# Begin_set_workpath原地址路径

Begin_set_workpath = r"D:/Python_dev"

# Send_set_workpath复制到地址

Send_set_workpath_1 = r"D:/test/test1"

Send_set_workpath_2 = r"D:/test/test2"

# Log_set_worpath日志生成地址

Log_set_workpath = r"D:/Log_out.log"

print "日志输出路径:%s" % (Log_set_workpath)

newpath = ""

print "程序初始化完成,数据集加载成功!"

loops = [Send_set_workpath_1,Send_set_workpath_2]

def Copy_method(newpath,path,lock):

time.time()

os.system("xcopy %s %s /y" % (newpath,path))

lock.release()

def main():

for root, dirs, files in os.walk(Begin_set_workpath):

locks = []

nloops = range(len(loops))

for i in (0,1):

lock = thread.allocate_lock()

lock.acquire()

locks.append(lock)

for i in (0,1):

for fl in files:

#获得复制文件的文件路径

newpath = os.path.join(root,fl)

#循环创建线程

thread.start_new_thread(Copy_method,(newpath,loops[i],locks[i]))

#输出日志

Log_out = open(Log_set_workpath,'w')

#日志中记录当前运行时间

record_nowtime = time.localtime()

Log_out.close()

for i in (0,1):

while locks[i].locked():pass

if __name__ == "__main__":

main()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐