python 生产者,消费者的同步互斥问题
来源:互联网 发布:网络婚恋诈骗案件 编辑:程序博客网 时间:2024/06/12 01:39
import threading
import time
class Producer(threading.Thread):
def __init__(self,t_name):
threading.Thread.__init__(self,name=t_name)
def run(self):
global x
con.acquire()
if x>0:
con.wait()
else:
for i in xrange(0,5,1):
x+=1
print u'producing...'+str(x)
con.notify()
print x
con.release()
class Consumer(threading.Thread):
def __init__(self,t_name):
threading.Thread.__init__(self,name=t_name)
def run(self):
global x
con.acquire()
if x<0:
con.wait()
else:
for i in xrange(0,5,1):
x-=1
print u'consume...'+str(x)
con.notify()
print x
con.release()
con = threading.Condition()
x = 0
print u'start consumer'
c = Consumer('consumer')
print u'start producer'
p = Producer('producer')
p.start()
c.start()
print x
import time
class Producer(threading.Thread):
def __init__(self,t_name):
threading.Thread.__init__(self,name=t_name)
def run(self):
global x
con.acquire()
if x>0:
con.wait()
else:
for i in xrange(0,5,1):
x+=1
print u'producing...'+str(x)
con.notify()
print x
con.release()
class Consumer(threading.Thread):
def __init__(self,t_name):
threading.Thread.__init__(self,name=t_name)
def run(self):
global x
con.acquire()
if x<0:
con.wait()
else:
for i in xrange(0,5,1):
x-=1
print u'consume...'+str(x)
con.notify()
print x
con.release()
con = threading.Condition()
x = 0
print u'start consumer'
c = Consumer('consumer')
print u'start producer'
p = Producer('producer')
p.start()
c.start()
print x
0 0
- python 生产者,消费者的同步互斥问题
- linux中的生产者和消费者问题--信号量 互斥 同步
- 资源同步与互斥问题(生产者与消费者)
- 三个同步与互斥问题之生产者与消费者
- 线程的同步与互斥---生产者消费者模型
- 生产者-消费者问题实现 (linux下C同步信号量和互斥信号量的应用)
- 经典生产者与消费者问题(线程的同步与互斥)
- 利用线程的同步和互斥解决两个消费者两个生产者一个临界区问题
- 互斥与同步---生产者与消费者
- java同步互斥,生产者消费者
- GNU/Linux中解决多线程互斥同步问题(生产者消费者同步问题)
- Linux下生产者消费者问题详细分析(操作系统期中考试论文---并发程序的同步和互斥)
- 进程间同步互斥经典问题(一)生产者-消费者问题
- 进程同步互斥经典题之消费者与生产者问题
- Linux下信号量实现进程同步、互斥(生产者消费者问题)
- 生产者-消费者同步问题
- 生产者消费者问题-同步
- C语言 线程同步互斥生产者消费者
- 统计字符的个数(经常用得到)
- C#关于DateTime得到的当前时间的格式和用法
- eclipse 常用快捷键
- linux驱动程序开发流程
- Objective-C开发编码规范
- python 生产者,消费者的同步互斥问题
- Objective-C类别(catagory)
- 用起泡法排序(比如说排十个数字)
- ENET(七)——enet_socket_send()函数
- TCP和UDP的区别,拥塞窗口的概念,如何建立一个TCP连接
- opencv2.4.10与VS2010中一些遇到的问题总结
- JQuery .attr()和.prop()的正确使用场合,JQuery获取checkbox状态的正确方法
- How-old带给美图应用们的思考
- js调试工具console.log()方法查看js代码的执行情况