6

Python爬虫编程思想(141):多线程和多进程爬虫--生产者-消费者问题与queue模块

 2 years ago
source link: https://blog.csdn.net/nokiaguy/article/details/123881249
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Python爬虫编程思想(141):多线程和多进程爬虫--生产者-消费者问题与queue模块

蒙娜丽宁 于 2022-03-31 19:36:46 发布 921

        本文使用线程锁以及队列来模拟一个典型的案例:生成者-消费者模型。在这个场景下,商品或服务的生产者生成商品,然后将其放到类似队列的数据结构中,生产商品的时间是不确定的,同样消费者消费生产者生产的商品的时间也是不确定的。

        这里使用queue模块来提供线程间通讯的机制,也就是说,生产者和消费者共享一个队列。生产者生成商品后,会将商品添加到队列中。消费者消费商品,会从队列中取一个商品。由于向队列中添加商品和从队列中获取商品都不是原子操作,所以需要使用线程锁将这两个操作锁住。

        下面的例子使用线程锁和队列实现了一个生产者-消费者模型的程序。通过for循环产生若干个生产者和消费者,并向队列中添加商品,以及从队列中获取商品。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK