python:多线程+队列Queue 实现:生产者和消费者demo

本文演示了如何使用Python的多线程和Queue模块创建一个生产者消费者模型。通过BookThread类实现线程,利用全局变量和锁进行线程间的同步,将任务放入队列并由多个线程处理。示例中,线程从队列获取书籍并调用deal_book函数处理。
摘要由CSDN通过智能技术生成
# -*- coding: UTF-8 -*-
# __author__ = 'Sengo'
import Queue
import threading
import time


class BookThread(threading.Thread):
    def __init__(self, thread_id, q, func):
        threading.Thread.__init__(self)
        self.threadID = thread_id
        self.q = q
        self.func = func

    def run(self):
        print "线程 %d 开启" % self.threadID
        # TODO
        process_book(self.threadID, self.q, self.func)
        print "线程 %d 结束" % self.threadID


def process_book(thread_id, q, func):
    global existFlag
    while not existFlag:
        queueLock.acquire()
        if not q.empty():
            book = q.get()
            queueLock.release()
            # TODO deal_book
            print "Thread %d processing book %s" % (thread_id, book)
            func(book)
            time.sleep(1)
        else:
            queueLock.release()

queueLock = threading.Lock()
existFlag = 0


def st
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值