pythonのgevent同步异步区别
Posted 。低调ヽ继续
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pythonのgevent同步异步区别相关的知识,希望对你有一定的参考价值。
1 #!/usr/bin/env python 2 3 from urllib import request 4 import gevent 5 from gevent import monkey 6 import time 7 8 monkey.patch_all() # 把当前程序所有的IO操作给我单独的做上标记。 9 def f(url): 10 resp = request.urlopen(url) 11 data = resp.read() 12 print(len(data)) 13 14 urls = ["https://www.python.org", 15 "https://www.yahoo.com", 16 "https://github.com" 17 ] 18 time_start = time.time() 19 for url in urls: 20 f(url) 21 print("同步花费时间:",time.time()-time_start) 22 23 asy_time = time.time() 24 gevent.joinall({ 25 gevent.spawn(f,"https://www.python.org"), 26 gevent.spawn(f,"https://www.yahoo.com"), 27 gevent.spawn(f,"https://github.com"), 28 }) 29 print("异步花费时间:",time.time()-asy_time)
C:UsersAdministratorAppDataLocalProgramsPythonPython37python.exe D:/PythonStudy/charm/01/day10/爬虫.py 48822 479812 64096 同步花费时间: 4.925281763076782 48822 64096 477025 异步花费时间: 3.1961827278137207 Process finished with exit code 0
以上是关于pythonのgevent同步异步区别的主要内容,如果未能解决你的问题,请参考以下文章
# 进程/线程/协程 # IO:同步/异步/阻塞/非阻塞 # greenlet gevent # 事件驱动与异步IO # SelectPollEpoll异步IO 以及selectors模块 # (示