今日写了一个简单的生产者消费者脚本,仅仅是简单的代码;后续如果可以的话以多线程的方式,实现快速生产或者快速消耗等扩展操作。环境为python27,运行在Windows上。
`#-- encoding:utf-8 --
import threading,Queue
import subprocess
workqueue = Queue.Queue()
def product():
for data in range(10):
ip = “192.168.0.” + str(data)
res = subprocess.call(“ping -n 2 -w 4 %s” %ip,stdout=subprocess.PIPE)
if res==0:
print(“ping {} success”.format(ip))
workqueue.put(ip)
else:
print(“ping {} failed”.format(ip))
workqueue.put(None)
def consumer():
while True:
data = workqueue.get()
if not data:
print(“data is None!”)
break
else:
print(“consumer data={}”.format(data))
class Product(object):
“”“oop product”""
def init(self):
print(“init”)
def ping_o(self,data):
res = subprocess.call("ping -n 2 -w 4 %s" %data)
if 0 == res:
return data
else:
print("ping {} failed".format(data))
if name == “main”:
# p = threading.Thread(target=product)
# c = threading.Thread(target=consumer)
# p.start()
# c.start()
p = Product()
msg = input("input ip data:")
res = p.ping_o(msg)
print(res)`