在python中实现生产者和消费者的例子(五):使用threading模块和全局变量
来源:互联网 发布:pdf官方软件下载 编辑:程序博客网 时间:2024/05/14 20:10
本文介绍如何用threading模块实现生产者和消费者的例子
import threadingimport 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()
- 在python中实现生产者和消费者的例子(五):使用threading模块和全局变量
- 在python中实现生产者和消费者的例子(四):使用thread模块和全局变量
- 在python中实现生产者和消费者的例子(一):使用multiprocessing和pipe()
- 在python中实现生产者和消费者的例子(二):使用multiprocessing和queue
- 在python中实现生产者和消费者的例子(三):使用fork和pipe
- python使用threading.condition实现生产者消费者
- python的threading模块中threading.RLock和threading.Lock
- python多线程(2)--thread和threading模块的使用
- Python 3 实现定义跨模块的全局变量和使用
- python核心编程-线程threading模块之生产者与消费者
- Java多线程生产者和消费者的例子
- 生产者和消费者的简单例子
- python 生产者和消费者
- 多线程生产者和消费者例子
- -信号量(Semaphore)在生产者和消费者模式的使用
- 使用BlockingQueue实现生产者和消费者模型
- 使用BlockingQueue实现生产者和消费者模式
- Kafka使用go实现生产者和消费者
- linux awk 内置函数详细介绍(实例)
- Java 8全面解析!不知道的来看看那!
- Unity3D之Lightmap详解
- 1763. 传球游戏
- Win32API大全
- 在python中实现生产者和消费者的例子(五):使用threading模块和全局变量
- C# WinForm只允许运行一个窗体实例
- hdu 4190
- 获取请求行的相关信息getPathTranslated
- asus笔记本x44h
- 增强Eclipse的自动代码提示功能
- Unity3d动态加载及生成配置文件
- SAP SD 常用表
- 龙虎门online