楼主: igs816
4189 44

[其他] Distributed Computing with Python [推广有奖]

21
cnuk 发表于 2016-4-26 18:27:17 |只看作者 |坛友微信交流群
好好学习

使用道具

22
MuDull 在职认证  发表于 2016-4-26 20:48:32 |只看作者 |坛友微信交流群
好东西

使用道具

23
mike68097 发表于 2016-4-26 23:25:21 |只看作者 |坛友微信交流群

使用道具

24
Elena3 发表于 2016-4-27 07:39:37 |只看作者 |坛友微信交流群
{:3_50:}

使用道具

25
earthworm6 发表于 2016-4-27 13:50:21 |只看作者 |坛友微信交流群
学习!

使用道具

26
vtmc 发表于 2016-4-28 10:24:11 |只看作者 |坛友微信交流群
来来来,aws走起走起!!

使用道具

27
Nicolle 学生认证  发表于 2016-4-30 20:51:41 |只看作者 |坛友微信交流群
提示: 作者被禁止或删除 内容自动屏蔽

使用道具

28
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()
复制代码

使用道具

29
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()
复制代码

使用道具

30
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)
复制代码

使用道具

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

本版微信群
加好友,备注jr
拉您进交流群

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

GMT+8, 2024-4-27 01:46