Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1784527
  • 博文数量: 276
  • 博客积分: 1574
  • 博客等级: 上尉
  • 技术积分: 2894
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-26 23:23
个人简介

生活的美妙在于,不知道一下秒是惊艳还是伤神,时光流转,珍惜现在的拥有的时光

文章分类

全部博文(276)

文章存档

2017年(17)

2016年(131)

2015年(63)

2013年(2)

2012年(32)

2011年(31)

分类: Python/Ruby

2016-05-09 14:22:56

task_master.txt
task_worker.txt

点击(此处)折叠或打开

  1. #!/usr/bin/env python3
  2. #-*- coding:utf-8 -*-
  3. '''
  4. '''
  5. import time,random,queue
  6. from multiprocessing.managers import BaseManager

  7. task_queue = queue.Queue()
  8. result_queue = queue.Queue()

  9. class QueueManager(BaseManager):
  10.     pass

  11. QueueManager.register('get_task_queue', callable=lambda: task_queue)
  12. QueueManager.register('get_result_queue', callable=lambda: result_queue)

  13. manager = QueueManager(address=('', 5000), authkey=b'talen')
  14. manager.start()
  15. task = manager.get_task_queue()
  16. result = manager.get_result_queue()
  17. for i in range(10):
  18.     n = random.randint(0,9000)
  19.     print('Put task %d' % n)
  20.     task.put(n)
  21. for i in range(10):
  22.     r=result.get(timeout=10)
  23.     print("Result : %s " % r)
  24. manager.shutdown()

  25. print('master exit.')


点击(此处)折叠或打开

  1. #!/usr/bin/env python3
  2. #-*- coding:utf-8 -*-
  3. '''
  4. '''


  5. import time, queue, sys
  6. from multiprocessing.managers import BaseManager
  7. class QueueManger(BaseManager):
  8.     pass
  9. QueueManger.register('get_task_queue')
  10. QueueManger.register('get_result_queue')
  11. server_addr='127.0.0.1'
  12. print('Connect to server %s '% server_addr)
  13. m=QueueManger(address=(server_addr,5000), authkey=b'talen')
  14. m.connect()
  15. task=m.get_task_queue()
  16. result=m.get_result_queue()
  17. for i in range(10):
  18.     try:
  19.         n=task.get(timeout=1)
  20.         print('run task %d * %d ...' %(n,n))
  21.         r='%d * %d = %d' % (n,n,n*n)
  22.         time.sleep(1)
  23.         result.put(r)
  24.     except Queue.Empty:
  25.         print('task queue is empty')
  26. print('worker exit.')
t@localhost untitled$ python3 task_master.py 
Put task 6811
Put task 5164
Put task 8492
Put task 177
Put task 5496
Put task 8724
Put task 6422
Put task 2887
Put task 287
Put task 876
Result : 6811 * 6811 = 46389721 
Result : 5164 * 5164 = 26666896 
Result : 8492 * 8492 = 72114064 
Result : 177 * 177 = 31329 
Result : 5496 * 5496 = 30206016 
Result : 8724 * 8724 = 76108176 
Result : 6422 * 6422 = 41242084 
Result : 2887 * 2887 = 8334769 
Result : 287 * 287 = 82369 
Result : 876 * 876 = 767376 
master exit.
t@localhost untitled$ 
t@localhost untitled$ python3 task_worker.py 
Connect to server 127.0.0.1 
run task 6811 * 6811 ...
run task 5164 * 5164 ...
run task 8492 * 8492 ...
run task 177 * 177 ...
run task 5496 * 5496 ...
run task 8724 * 8724 ...
run task 6422 * 6422 ...
run task 2887 * 2887 ...
run task 287 * 287 ...
run task 876 * 876 ...
worker exit.
t@localhost untitled$ 




参考学习:
阅读(1497) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~