第五章 爬虫进阶(一) 2020-01-18

一、 多线程介绍与threading基本使用


本章目标


1、理解多线程。

2、掌握threading模块的使用。

3、掌握生产者和消费者模式。

4、理解GIL。

5、能用多线程写爬虫。


本节目标


1、了解什么是多线程

2、学会使用threading模块基本使用


什么是多线程

1、理解:默认情况下,一个程序只有一个进程和一个线程,代码是依次线性执行的。而多线程则可以并发执行,一次性多个人做多件事,自然比单线程更快。

2、官方:http://baike.baidu.com/item/多线程/1190404?fr=aladdin


用threading模块写一个多线程程序


Threading模块是python中专门提供用来做多线程编程的模块。Threading模块中最常用的类是Thread。以下看一个简单的多线程程序:


第五章 爬虫进阶(一) 2020-01-18_第1张图片
单线程需要6秒
第五章 爬虫进阶(一) 2020-01-18_第2张图片
多线程只要3秒


如何创建一个基本的多线程:

使用threading模块下的Thread类即可创建一个线程。这个类有一个target参数,需要指定一个函数,那么以后这个线程执行的时候,就会执行这个函数的代码。


示例代码如下:


import time

import threading

 

 

def coding():

    for x in range(3):

        print("%d正在写代码..." % x)

        time.sleep(1)

 

 

def drawing():

    for x in range(3):

        print("%d正在画图..." % x)

        time.sleep(1)

 

 

def single_thread():

    coding()

    drawing()

 

 

# 单线程

# if__name__ == '__main__':

#     single_thread()

 

# 多线程

def multi_thread():

    th1 = threading.Thread(target=coding)

    th2 = threading.Thread(target=drawing)

 

    th1.start()

    th2.start()

 

 

if__name__ == '__main__':

    multi_thread()



上一篇文章 第四章 数据储存——JSON、CSV、Excel、MySQL(十六) 2020-01-17 地址:

https://www.jianshu.com/p/04c53d38b714

下一篇文章 第五章 爬虫进阶(二) 2020-01-19 地址:

https://www.jianshu.com/p/80f99226d5bb



以上资料内容来源网络,仅供学习交流,侵删请私信我,谢谢。

你可能感兴趣的:(第五章 爬虫进阶(一) 2020-01-18)