利用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."
底下的代码就是相当于一个简答的通信框架,需要的时候可以扩展,也可以多开几个线程,为了演示效果我每个类只开了一个线程.
#_*_ 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."
相关文章推荐
- [转载]Python装饰器学习(九步入门)
- python学习---5
- python 常用 time, datetime处理
- 基于python实现微信模板消息
- Python字符串连接
- python中迷信继承
- [python]在场景中理解装饰器
- python下分析网页的好工具:BeautifulSoup
- Python内置函数学习
- Python GET REMOTE SERVER'S INFO
- Python读写文件
- python主要用来做什么
- Python 元组、列表、字典、字符串的操作
- python 获取管理微信应用菜单
- python_index
- 每天学点Python之tuple
- 每天学点Python之set
- Python Network Programming -Gethostname&ip_address
- python如何实现远程控制电脑(结合微信)
- python代码打包