# -*- 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
python:多线程+队列Queue 实现:生产者和消费者demo
最新推荐文章于 2024-07-13 21:38:15 发布
本文演示了如何使用Python的多线程和Queue模块创建一个生产者消费者模型。通过BookThread类实现线程,利用全局变量和锁进行线程间的同步,将任务放入队列并由多个线程处理。示例中,线程从队列获取书籍并调用deal_book函数处理。
摘要由CSDN通过智能技术生成