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

 
  1. #!/usr/bin/env python
  2. #-*- coding: cp936 -*-
  3. #===============================================================================
  4. # 1、将原程序改为多线程
  5. # 2、加入线程之间的互斥和锁操作
  6. # 3、当其中一个线程执行完成后通知锁对象将该线程释放
  7. #===============================================================================
  8. import os,time,thread
  9. # Begin_set_workpath原地址路径
  10. Begin_set_workpath = r"D:/Python_dev"
  11. # Send_set_workpath复制到地址
  12. Send_set_workpath_1 = r"D:/test/test1"
  13. Send_set_workpath_2 = r"D:/test/test2"
  14. # Log_set_worpath日志生成地址
  15. Log_set_workpath = r"D:/Log_out.log"
  16. print "日志输出路径:%s" % (Log_set_workpath)
  17. newpath = ""
  18. print "程序初始化完成,数据集加载成功!"
  19. loops = [Send_set_workpath_1,Send_set_workpath_2]
  20. def Copy_method(newpath,path,lock):
  21.     time.time()
  22.     os.system("xcopy %s  %s /y" % (newpath,path))
  23.     lock.release()
  24. def main():
  25.     for root, dirs, files in os.walk(Begin_set_workpath):
  26.         locks = []
  27.         nloops = range(len(loops))
  28.         for i in (0,1):
  29.             lock = thread.allocate_lock()
  30.             lock.acquire()
  31.             locks.append(lock)
  32.         for i in (0,1):
  33.             for fl in files:
  34.                #获得复制文件的文件路径
  35.                 newpath = os.path.join(root,fl)
  36.                 #循环创建线程
  37.                 thread.start_new_thread(Copy_method,(newpath,loops[i],locks[i]))
  38.                 #输出日志
  39.                 Log_out = open(Log_set_workpath,'w')
  40.                 #日志中记录当前运行时间
  41.                 record_nowtime = time.localtime()
  42.                 Log_out.close()
  43.         for i in (0,1):
  44.             while locks[i].locked():pass
  45. if __name__ == "__main__":
  46.     main()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值