楼主: igs816
2344 44

[其他] Distributed Computing with Python [分享]

cnuk 发表于 2016-4-26 18:27:17 |显示全部楼层
好好学习
回复

使用道具 举报

MuDull 在职认证  发表于 2016-4-26 20:48:32 |显示全部楼层
好东西
回复

使用道具 举报

mike68097 发表于 2016-4-26 23:25:21 |显示全部楼层
回复

使用道具 举报

Elena3 发表于 2016-4-27 07:39:37 |显示全部楼层
回复

使用道具 举报

earthworm6 发表于 2016-4-27 13:50:21 |显示全部楼层
学习!
回复

使用道具 举报

vtmc 发表于 2016-4-28 10:24:11 |显示全部楼层
来来来,aws走起走起!!
回复

使用道具 举报

Nicolle 学生认证  发表于 2016-4-30 20:51:41 |显示全部楼层
回复

使用道具 举报

ReneeBK 发表于 2016-5-1 06:44:11 |显示全部楼层
  1. from threading import Thread
  2. from queue import Queue
  3. import urllib.request
  4. URL = 'http://finance.yahoo.com/d/quotes.csv?s={}=X&f=p'
  5. def get_rate(pair, outq, url_tmplt=URL):
  6. with urllib.request.urlopen(url_tmplt.format(pair)) as res:
  7. body = res.read()
  8. outq.put((pair, float(body.strip())))
  9. if __name__ == '__main__':
  10. import argparse
  11. parser = argparse.ArgumentParser()
  12. parser.add_argument('pairs', type=str, nargs='+')
  13. args = parser.parse_args()
  14. outputq = Queue()
  15. for pair in args.pairs:
  16. t = Thread(target=get_rate,
  17. kwargs={'pair': pair,
  18. 'outq': outputq})
  19. t.daemon = True
  20. t.start()
  21. for _ in args.pairs:
  22. pair, rate = outputq.get()
  23. print(pair, rate)
  24. outputq.task_done()
  25. outputq.join()
复制代码
回复

使用道具 举报

ReneeBK 发表于 2016-5-1 06:46:13 |显示全部楼层
  1. from threading import Thread
  2. def fib(n):
  3. if n <= 2:
  4. return 1
  5. elif n == 0:
  6. return 0
  7. elif n < 0:
  8. raise Exception('fib(n) is undefined for n < 0')
  9. return fib(n - 1) + fib(n - 2)
  10. if __name__ == '__main__':
  11. import argparse
  12. parser = argparse.ArgumentParser()
  13. parser.add_argument('-n', type=int, default=1)
  14. parser.add_argument('number', type=int, nargs='?', default=34)
  15. args = parser.parse_args()
  16. assert args.n >= 1, 'The number of threads has to be > 1'
  17. for i in range(args.n):
  18. t = Thread(target=fib, args=(args.number,))
  19. t.start()
复制代码
回复

使用道具 举报

ReneeBK 发表于 2016-5-1 06:47:08 |显示全部楼层
  1. import concurrent.futures as cf
  2. def fib(n):
  3. if n <= 2:
  4. return 1
  5. elif n == 0:
  6. return 0
  7. elif n < 0:
  8. raise Exception('fib(n) is undefined for n < 0')
  9. return fib(n - 1) + fib(n - 2)
  10. if __name__ == '__main__':
  11. import argparse
  12. parser = argparse.ArgumentParser()
  13. parser.add_argument('-n', type=int, default=1)
  14. parser.add_argument('number', type=int, nargs='?', default=34)
  15. args = parser.parse_args()
  16. assert args.n >= 1, 'The number of threads has to be > 1'
  17. with cf.ProcessPoolExecutor(max_workers=args.n) as pool:
  18. results = pool.map(fib, [args.number] * args.n)
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 我要注册

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2019-10-20 23:03