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

利用Queue库实现python进程间通讯

2015-12-21 16:11 696 查看
       曾经写过几个爬虫,自己维护的多线程,都是用这种方法进行的通信,创建两个队列,一个存储网址url另一个存储网页的内容,创建两个线程类,类A的run函数中做的是利用url提取网页的内容,类B的run函数中做的是从网页内容的队列中提取内容,之后进行正则表达的分析,提取去想要的数据,可以存到文件中,也可以存到数据库中,都可以.  

       底下的代码就是相当于一个简答的通信框架,需要的时候可以扩展,也可以多开几个线程,为了演示效果我每个类只开了一个线程.

#_*_ coding:utf8 _*_
import threading
import Queue

class A(threading.Thread):
def __init__(self,queue):
threading.Thread.__init__(self)
self.data = queue
def run(self):
for i in range(100):
self.data.put(i)

class B(threading.Thread):
def __init__(self,queue):
threading.Thread.__init__(self)
self.data = queue
def run(self):
while True:
try:
val = self.data.get(True,10)
print(val)
except Exception as e:
print "Get data timeout!"
break

def main():
q = Queue.Queue()
a = A(q)
b = B(q)
a.start()
b.start()
a.join()
b.join()

if __name__ == "__main__":
main()
print "test programm end."
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: