Python爬虫:线程,进程与协程

以往的爬虫我们都采用单线程和同步的方式,这导致我们的爬虫及其脆弱,因为一点报错都会让它停下来,而且面对比较大的数据,爬虫只能选择等待,这种阻塞会消耗很多时间,为什么我们不把等待的这些时间去干别的事呢?

线程与进程

线程和进程是相似的 

一,概念梳理

线程: 程序内,可以直接被CPU调用的执行过程,是操作系统能够进行运算的最小单位,它被包含在进程中实际运作的单位。

进程:运行中的程序,每次我们执行应该程序,操作系统会自动地为这个程序准备一些必要的资源(分配内存,创造一个能执行的线程)

形象来说,线程就像是员工,进程就是公司,线程组成进程。如果我们想要提升效率,我们可以多招些员工(多线程)或者开一些分公司,连锁(多进程) 

二,代码实现

多线程

from threading import Thread
# def func(name):
#     for i in range(10):
#         print(name,i)

 #创建任务
def func_1(name):
    for i in range(100):
        print(name,i)


if __name__ == '__main__':
    # func("A")
    # func("B")
    # func("C")
    # #创建线程
    t1 = Thread(target=func_1,args=("A",))
    t2 = Thread(target=func_1,args=("B",))
    t3 = Thread(target=func_1,args=("C",))
    t1.start()
    t2.start()
    t3.start()

实例化线程对象:Thread(taeget=目标函数,不要括号,args=()填参数,元组形式) 

开启线程:线程对象的start方法

面向对象写法 

 
 

你可能感兴趣的:(Python网络爬虫,python,爬虫,开发语言,网络爬虫,协程,线程,进程)