多线程概念和Threading模块介绍


多线程爬虫
有些时候,比如下图片,因为下载图片是一个耗时的操作。如果采用之前那种同步的方式下载。那效率肯会特别慢。这时候我们就可以考虑使用多线程的方式来下图片。
多线程介绍:
多程是为了同步完成多项任务,通过提高资源使用效率来提高系统的效率。线程是在同一时间需要完成多项任务的时候实现的。
最简单的比喻多线程就像火车的每一节车用,而进程贝是火车。车厢离开火车是无法跑动的,同理火车也可以有多节车厢。多线程的出现就是为了提高效率。同时它的出现也带来了一些问题。更多介绍请念考:hts/baike.baidu.com/item/多程/1190404
fr=aladdin
使用Thread类创建多线程
査看线程数:
使用threading.enumerate()的便可以看到当前线程的数量
查看当前线程的名字
使用 threading.current_thread()可以看到当的线程的信息
继承自threading.Thread类:
为了让线程代码更好的封装。可以使用threading模块下的Thread类,继承自这个类,然后实现润方法,线程就会自动运行run方法中的代码,

多线程共享全局变量以及锁机制
    多线程共享全局变量的问题:
    多线程都是在统一进程中运行的。因此在进程中的全局变量所有线程都是可以共享的。这就造成了一个问题,因为线程执行的顺序是无序的。有可能会造成数据错误。

import threading
tickets = 0 
def get_ticket():
    global = tickets
    for x in range(1000):
        tickets += 1
        print('tickets:%d'%tickets)
        
def main():
    for x in range(2):
        t = threading.Thread(target=get_ticket)
        t.start()
if __name__ == '__main__':
    main()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值