爬虫(12)——多线程爬虫(消费者生产者模式、condition模式)

本文探讨了多线程爬虫的原理及其在资源高效利用中的作用,详细讲解了线程创建、线程间全局变量共享及锁机制,同时介绍了生产者消费者模式下两种线程同步方式:Lock和Condition。

多线程爬虫

多线程是为了同步完成多项任务,不是为了提高运行效率,而是为了提高资源使用效率来提高系统的效率。线程是在同一时间需要完成多项任务的时候实现的。 最简单的比喻多线程就像火车的每一节车厢,而进程则是火车。车厢离开火车是无法跑动的,同理火车也不可能只有一节车厢。

import threading
import time

def coding():
    for x in range(3):
        print("写代码%s"%threading.current_thread())#threading.current_thread()可以写出线程名字,eg:<Thread(Thread-1, started 20112)>
        time.sleep(1)

def writing():
    for x in range(3):
        print("写东西%s"%threading.current_thread())
        time.sleep(1)

def main():
    t1=threading.Thread(target=coding)
    t2 = threading.Thread(target=writing)

    t1.start()
    t2.start()
    print(threading.enumerate())#可以查看有多少线程,此程序有3个,其中包括一个主线程

if __name__=='__main__':
    main()

可以写成类的形式

import threading
import time

class coding_thread(threading.Thread):
    def run(self):
        for x in range(3):
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值