您的位置:首页 > 编程语言 > Python开发

在python中实现生产者和消费者的例子(五):使用threading模块和全局变量

2013-09-04 13:36 911 查看
本文介绍如何用threading模块实现生产者和消费者的例子

import threading

import time

import random

c=0

lock=threading.RLock()

#class 类名 (所要继承的类)

class producer(threading.Thread):

def __init__(self,no):

threading.Thread.__init__(self)

self.no=no

self.isstop=False

def run(self):

global c

while True:

if c<=100:

time.sleep(random.randint(1,3))

lock.acquire()

c=c+1

lock.release()

print 'No %d producer-- %d' %(self.no,c)

else:

time.sleep(random.randint(1,3))

def stop(self):

self.isstop=False

class consumer(threading.Thread):

def __init__(self,no):

threading.Thread.__init__(self)

self.no=no

self.isstop=False

def run(self):

global c

while True:

if c>0:

time.sleep(random.randint(1,3))

lock.acquire()

c=c-1

lock.release()

print 'No %d consumer-- %d' %(self.no,c)

else:

time.sleep(random.randint(1,3))

def stop(self):

self.isstop=False

def center():

#(1,)是为了表示其是元组,若写成(1)则为整型

t=[]

t.append(producer(1))

t.append(producer(2))

t.append(producer(3))

t.append(consumer(4))

t.append(consumer(5))

t.append(consumer(6))

for i in range(6):

t[i].start()

for i in range(6):

t[i].join()

if __name__=='__main__':

center()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: