Python爬虫程序设计KC33.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《Python爬虫程序设计KC33.pptx》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Python 爬虫 程序设计 KC33
- 资源描述:
-
1、3.3.1 Python的前后台线程的前后台线程线程类似于同时执行多个不同程序,多线程运行有如下优点:使用线程可以把占据长时间的程序中的任务放到后台去处理。程序的运行速度可能加快在一些等待的任务实现上如用户输入、文件读写和网络收发数据等,线程就比较有用了。在这种情况下我们可以释放一些珍贵的资源如内存占用等等。每个线程都有他自己的一组CPU寄存器,称为线程的上下文,该上下文反映了线程上次运行该线程的CPU寄存器的状态。在其他线程正在运行时,线程可以暂时搁置(也称为睡眠),这就是线程的退让。3.3.1 Python的前后台的前后台线程线程在Python中要启动一个线程,可以使用threading包
2、中的Thread建立一个对象,这个Thread类的基本原型是:t=Thread(target,args=None)其中target是要执行的线程函数,args是一个元组或者列表为target的函数提供参数,然后调用t.start()就开始了线程。例例3-3-1:在主线程中启动一个子线程执行在主线程中启动一个子线程执行reading函数。函数。import threadingimport timeimport random def reading():for i in range(10):print(reading,i)time.sleep(random.randint(1,2)r=thread
3、ing.Thread(target=reading)r.setDaemon(False)r.start()print(The End)程序结果:reading 0The Endreading 1reading 2reading 3reading 4从结果看到主线程启动子线程r后就结束了,但是子线程还没有结束,继续显示完reasing 4后才结束。其中的r.setDaemon(False)就是设置线程r为后台线程,后台线程不因主线程的结束而结束。如何设置r.setDaemon(True),那么r就是前台线程。例例3-3-2:启动一个前台线程启动一个前台线程import threadingimpo
4、rt timeimport random def reading():for i in range(5):print(reading,i)time.sleep(random.randint(1,2)r=threading.Thread(target=reading)r.setDaemon(True)r.start()print(The End)程序结果:reading 0The End由此可见在主线程结束后子线程也结束,这就是前台线程。例例3-3-3:前台与后台线程:前台与后台线程import threadingimport timeimport random def reading():fo
5、r i in range(5):print(reading,i)time.sleep(random.randint(1,2)def test():r=threading.Thread(target=reading)r.setDaemon(True)r.start()print(test end)t=threading.Thread(target=test)t.setDaemon(False)t.start()print(The End)程序结果:The Endreading 0test end由此可见主线程启动后台子线程t后就结束了,但是t还在执行,在t中启动前台r子线程,之后t结束,相应的r
6、也结束。3.3.2 线程的等待线程的等待3.3.2 线程的线程的等待等待在多线程的程序中往往一个线程(例如主线程)要等待其它线程执行完毕才继续执行,这可以用join函数,使用的方法是:线程对象.join()在一个线程代码中执行这条语句,当前的线程就会停止执行,一直等到指定的线程对象的线程执行完毕后才继续执行,即这条语句启动阻塞等待的作用。例例3-3-4:主线程启动一个子线程并等待子线程结束后才继续执行。:主线程启动一个子线程并等待子线程结束后才继续执行。import threadingimport timeimport random def reading():for i in range(5
展开阅读全文