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

  1. #!/usr/bin/envpython
  2. #-*-coding:cp936-*-
  3. #===============================================================================
  4. #1、将原程序改为多线程
  5. #2、加入线程之间的互斥和锁操作
  6. #3、当其中一个线程执行完成后通知锁对象将该线程释放
  7. #===============================================================================
  8. importos,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. defCopy_method(newpath,path,lock):
  21. time.time()
  22. os.system("xcopy%s%s/y"%(newpath,path))
  23. lock.release()
  24. defmain():
  25. forroot,dirs,filesinos.walk(Begin_set_workpath):
  26. locks=[]
  27. nloops=range(len(loops))
  28. foriin(0,1):
  29. lock=thread.allocate_lock()
  30. lock.acquire()
  31. locks.append(lock)
  32. foriin(0,1):
  33. forflinfiles:
  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. foriin(0,1):
  44. whilelocks[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、付费专栏及课程。

余额充值