python多线程执行其他模块的文件_Python自动化学习笔记(十)——多进程,多线程,异常处理,faker模块,sys模块,jsonpath模块...

本文介绍了Python中的多线程和多进程,包括如何创建和启动线程,多线程下载图片示例,线程同步的锁机制,守护线程,以及多进程的使用。此外,还讲解了异常处理的try-except语句,自定义异常,sys.argv参数传递,faker模块生成假数据,以及jsonpath模块在处理JSON数据中的应用。
摘要由CSDN通过智能技术生成

1.多线程

1.1多线程创建和启动

进程:一些资源的集合

线程:程序执行的最小单位

线程包含在进程内,进程是由若干线程组成的,一个进程至少有一个线程。

多任务可以由多进程完成,也可以由一个进程内的多线程完成。

启动一个线程就是把一个函数传入并创建Thread实例,然后调用start()开始执行,循环创建线程时,应当全部创建完毕后,再循环每一个线程执行t.join,否则和串行效率就一样了,代码示例:

importthreadingimporttimedefrun():

time.sleep(1)print('run.............')

starttime=time.time()

threads=[]for i in range(20):#循环创建20个线程

t1=threading.Thread(target=run,) #实例化一个线程

threads.append(t1)

t1.start()#启动线程#for t in threads:#循环每一个线程并t.join来等待#t.join() #主线程等待子线程执行结束

while threading.active_count()!=1:passendtime=time.time()print(endtime-starttime)

一个多线程下载图片的例子如下

两个知识点:

多线程运行时拿不到函数的返回值,可以定义一个全局变量,把返回值存储到全局变量中

实例化线程时,函数运行的参数可以通过一个list传入,t=threading.Thread(target=download_pic,args=(url,))

importrequestsfrom hashlib importmd5importthreadingimporttime

filename=[]defdownload_pic(url):

r=requests.get(url)

file_name=md5(r.content).hexdigest() #文件内容md5后的字符串拿来当作文件名

with open(file_name+'.jpg','wb')as fw:

fw.write(r.content)

filename.append(file_name)#多线程运行时拿不到函数的返回值,可以定义一个全局变量,把返回值存储到全局变量中

urls=['https://cn.bing.com/az/hprichbg/rb/GoldenEagle_ZH-CN2823955379_1920x1080.jpg','https://cn.bing.com/az/hprichbg/rb/GoldenEagle_ZH-CN2823955379_1920x1080.jpg','https://cn.bing.com/az/hprichbg/rb/Napo

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值