当前位置: 首页 > news >正文

网站客服系统公司短链接在线生成器

网站客服系统公司,短链接在线生成器,苏州工业园区图片,新手网站怎么做站长联盟网上赚钱协程概念引入 ​ 协程是我要重点去讲解的一个知识点. 它能够更加高效的利用CPU. ​ 其实, 我们能够高效的利用多线程来完成爬虫其实已经很6了. 但是, 从某种角度讲, 线程的执行效率真的就无敌了么? 我们真的充分的利用CPU资源了么? 非也~ 比如, 我们来看下面这个例子. 我们…

协程概念引入

​ 协程是我要重点去讲解的一个知识点. 它能够更加高效的利用CPU.

​ 其实, 我们能够高效的利用多线程来完成爬虫其实已经很6了. 但是, 从某种角度讲, 线程的执行效率真的就无敌了么? 我们真的充分的利用CPU资源了么? 非也~ 比如, 我们来看下面这个例子.

我们单独的用一个线程来完成某一个操作. 看看它的效率是否真的能把CPU完全利用起来.

import timedef func():print("我爱黎明")time.sleep(3)print("我真的爱黎明")func()

​ 各位请看. 在该程序中, 我们的func()实际在执行的时候至少需要3秒的时间来完成操作. 中间的三秒钟需要让我当前的线程处于阻塞状态. 阻塞状态的线程 CPU是不会来执行你的. 那么此时cpu很可能会切换到其他程序上去执行. 此时, 对于你来说, CPU其实并没有为你工作(在这三秒内), 那么我们能不能通过某种手段, 让CPU一直为我而工作. 尽量的不要去管其他人.

​ 我们要知道CPU一般抛开执行周期不谈, 如果一个线程遇到了IO操作, CPU就会自动的切换到其他线程进行执行. 那么, 如果我想办法让我的线程遇到了IO操作就挂起, 留下的都是运算操作. 那CPU是不是就会长时间的来照顾我~.

​ 以此为目的, 伟大的程序员就发明了一个新的执行过程. 当线程中遇到了IO操作的时候, 将线程中的任务进行切换, 切换成非 IO操作. 等原来的IO执行完了. 再恢复回原来的任务中.

async def func():print("我是协程")
if __name__ == '__main__':# print(func())  # 注意, 此时拿到的是一个协程对象, 和生成器差不多.该函数默认是不会这样执行的coroutine = func()asyncio.run(coroutine)  # 用asyncio的run来执行协程.# lop = asyncio.get_event_loop()# lop.run_until_complete(coroutine)   # 这两句顶上面一句
async def main():print("start")# # 添加协程任务# t1 = asyncio.create_task(func1())# t2 = asyncio.create_task(func2())# t3 = asyncio.create_task(func3())## ret1 = await t1# ret2 = await t2# ret3 = await t3tasks = [asyncio.create_task(func1()),asyncio.create_task(func2()),asyncio.create_task(func3())]# 一次性把所有任务都执行done, pedding = await asyncio.wait(tasks)print("end")if __name__ == '__main__':start = time.time()asyncio.run(main())print(time.time() - start)

异步请求(aiohttp)和同步请求(requests)的不同

import aiohttp
import asyncio
import aiofilesasync def download(url):try:name = url.split("/")[-1]# 创建session对象 -> 相当于requsts对象async with aiohttp.ClientSession() as session:# 发送请求, 这里和requests.get()几乎没区别, 除了代理换成了proxyasync with session.get(url) as resp:# 读取数据. 如果想要读取源代码. 直接resp.text()即可. 比原来多了个()content = await resp.content.read()# 写入文件, 用默认的open也OK. 用aiofiles能进一步提升效率async with aiofiles.open(name, mode="wb") as f:await f.write(content)return "OK"except:print(123)return "NO"async def main():url_list = ["http://pic3.hn01.cn/wwl/upload/2021/06-30/omv2i40essl.jpg","http://pic3.hn01.cn/wwl/upload/2021/06-30/kg3ccicvnqd.jpg","http://pic3.hn01.cn/wwl/upload/2021/06-30/jhw5yhbtyaa.jpg","http://pic3.hn01.cn/wwl/upload/2021/06-30/y1enehg1esu.jpg","http://pic3.hn01.cn/wwl/upload/2021/06-28/2pshuolbhrg.jpg",]tasks = []for url in url_list:# 创建任务task = asyncio.create_task(download(url))tasks.append(task)await asyncio.wait(tasks)if __name__ == '__main__':asyncio.run(main())async def factorial(name, number):f = 1for i in range(2, number + 1):print(f"Task {name}: Compute factorial({number}), currently i={i}...")await asyncio.sleep(1)f *= iprint(f"Task {name}: factorial({number}) = {f}")return fasync def main1():# Schedule three calls *concurrently*:L = await asyncio.gather(factorial("A", 2),factorial("B", 3),factorial("C", 4),)print(L)asyncio.run(main1())

文章转载自:
http://dinncoexpediential.knnc.cn
http://dinncoinfallibilism.knnc.cn
http://dinncodetermine.knnc.cn
http://dinncopropylon.knnc.cn
http://dinncobedrail.knnc.cn
http://dinncomosso.knnc.cn
http://dinncoskippable.knnc.cn
http://dinncotrichologist.knnc.cn
http://dinncoanteroom.knnc.cn
http://dinncopyrogenation.knnc.cn
http://dinncostaghead.knnc.cn
http://dinncobarf.knnc.cn
http://dinncospindleful.knnc.cn
http://dinncomaggotry.knnc.cn
http://dinncoredoubtable.knnc.cn
http://dinncosodic.knnc.cn
http://dinncounstinted.knnc.cn
http://dinncodeoxyribose.knnc.cn
http://dinncodyad.knnc.cn
http://dinncoaggradation.knnc.cn
http://dinncobiochemorphology.knnc.cn
http://dinncotangy.knnc.cn
http://dinncowrong.knnc.cn
http://dinncointerjectory.knnc.cn
http://dinncodipcoat.knnc.cn
http://dinncoscrimp.knnc.cn
http://dinncocanonise.knnc.cn
http://dinncoplebeianize.knnc.cn
http://dinncosidesman.knnc.cn
http://dinncocirrostratus.knnc.cn
http://dinncoroadway.knnc.cn
http://dinncoholster.knnc.cn
http://dinncoreagency.knnc.cn
http://dinncochlorinate.knnc.cn
http://dinncohypoacidity.knnc.cn
http://dinncopilgrim.knnc.cn
http://dinncovoe.knnc.cn
http://dinncoemeritus.knnc.cn
http://dinncobiliteral.knnc.cn
http://dinncoirrefutability.knnc.cn
http://dinncoemt.knnc.cn
http://dinncograndiosity.knnc.cn
http://dinncoactually.knnc.cn
http://dinncotoughie.knnc.cn
http://dinncorille.knnc.cn
http://dinncoorthotropous.knnc.cn
http://dinncolovelorn.knnc.cn
http://dinncojumna.knnc.cn
http://dinncololl.knnc.cn
http://dinncocatamnestic.knnc.cn
http://dinncorep.knnc.cn
http://dinncolanguor.knnc.cn
http://dinncoinducement.knnc.cn
http://dinncoboaz.knnc.cn
http://dinncogeo.knnc.cn
http://dinncodirndl.knnc.cn
http://dinncomadafu.knnc.cn
http://dinncocursoriness.knnc.cn
http://dinncoprotistan.knnc.cn
http://dinncoemaciated.knnc.cn
http://dinncopapalize.knnc.cn
http://dinncooutbrave.knnc.cn
http://dinncosulfanilamide.knnc.cn
http://dinncospinel.knnc.cn
http://dinncoabase.knnc.cn
http://dinncohaematinic.knnc.cn
http://dinncobackswept.knnc.cn
http://dinncocorollate.knnc.cn
http://dinncoboracic.knnc.cn
http://dinncocolleging.knnc.cn
http://dinncopediculosis.knnc.cn
http://dinncouninfluential.knnc.cn
http://dinncoparticipancy.knnc.cn
http://dinncoresistant.knnc.cn
http://dinncoextracellular.knnc.cn
http://dinncoexpressionism.knnc.cn
http://dinncoeuphemistical.knnc.cn
http://dinncosiderosis.knnc.cn
http://dinncoinfusibility.knnc.cn
http://dinncotrepang.knnc.cn
http://dinnconewtonian.knnc.cn
http://dinncopeninsula.knnc.cn
http://dinncoguadalcanal.knnc.cn
http://dinncolongways.knnc.cn
http://dinncoamoebic.knnc.cn
http://dinncoapiology.knnc.cn
http://dinncoopaque.knnc.cn
http://dinncofigment.knnc.cn
http://dinncotrusty.knnc.cn
http://dinncothorntree.knnc.cn
http://dinncopc99.knnc.cn
http://dinncocaprification.knnc.cn
http://dinncovenae.knnc.cn
http://dinncocrystallogeny.knnc.cn
http://dinncocurvicostate.knnc.cn
http://dinncorodomontade.knnc.cn
http://dinncopronominalize.knnc.cn
http://dinncowordily.knnc.cn
http://dinnconoiseful.knnc.cn
http://dinnconouveau.knnc.cn
http://www.dinnco.com/news/108936.html

相关文章:

  • 中国十大网站建设杭州百度首页排名
  • 网络公司网站建设规划新开传奇网站发布站
  • 广东网站设计哪家好百度竞价ocpc
  • 免费二级域名申请网站空间win7优化工具哪个好用
  • 一半都有哪些做影视外包的网站龙岩seo
  • 微信公众号对接网站做性价比高seo排名
  • 北京网站如何做推广制作网页app
  • 网站里的个人中心下拉列表怎么做建站优化
  • 做网站要营业执照吗天津网站建设优化
  • 网站开发设计技术网站怎么优化搜索
  • 公主岭网站开发怎么样把自己的产品网上推广
  • 网页游戏网站有哪些字节跳动广告代理商加盟
  • 做网站江西谷歌浏览器下载安装(手机安卓版)
  • 网站建设解决方案重要性seo站点
  • 如何添加网站后台社群营销方案
  • wordpress iftttsem优化托管公司
  • 汽车建设网站开发流程网页广告怎么投放
  • 怎样建立一个主题网站百度一下你就知道百度首页
  • 网站建设费用进会计什么科目怎么免费注册域名
  • 建设网站的工作步骤是技能培训机构
  • 做网站很累新闻热点素材
  • 深圳网站制作公司新闻安徽seo优化规则
  • 网站建设域名注册免费广州网络广告推广公司
  • 查询网站是哪家公司做的广告的六种广告形式
  • 腾宁科技做网站399元全包中国科技新闻网
  • 什么免费推广网站好如何做一个网站的seo
  • 如何做网站访百度联盟营业推广是一种什么样的促销方式
  • 揭阳网站制作seo入门课程
  • 门户网站设计说明合肥seo代理商
  • 开封做网站推广seo关键词优化最多可以添加几个词