网站流量排名查询商业网站和企业网站的区别
2026/4/17 0:25:08 网站建设 项目流程
网站流量排名查询,商业网站和企业网站的区别,别做网络推广员,网站设计外包合同众所周知#xff0c;通常协程执行时#xff0c;不像线程池、进程池一样可以限制最大数量#xff0c;而且他也没有这个参数。 但是可以使用asyncio.Semaphore限制协程并发数。先看示例(文章基于python 3.10) import aiohttp import asyncio import time import tracebackasyn…众所周知通常协程执行时不像线程池、进程池一样可以限制最大数量而且他也没有这个参数。但是可以使用asyncio.Semaphore限制协程并发数。先看示例(文章基于python 3.10)importaiohttpimportasyncioimporttimeimporttracebackasyncdefarequest_get(session,url,sem):asyncwithsem:# 使用的地方asyncwithsession.get(url)asresponse:returnf{url}内容:{response.status}{awaitresponse.text()}asyncdefmain():semasyncio.Semaphore(3)# 初始化并获取对象。asyncwithaiohttp.ClientSession()assession:urls[https://example.com/a,https://example.com/b,https://example.com/c]tasks[asyncio.wait_for(arequest_get(session,url,sem),timeout1)forurlinurls]resultsawaitasyncio.gather(*tasks,return_exceptionsTrue)forindex,resultinenumerate(results,1):ifisinstance(result,asyncio.TimeoutError):print(f任务{index}执行超时)elifisinstance(result,Exception):print(f任务{index}出现未知错误)print(traceback.format_tb(result.__traceback__))else:print(f任务{index}输出)print(result)if__name____main__:print(time.time())asyncio.run(main())print(time.time())信号量对象asyncio.Semaphore(value1)信号量对象。 该对象不是线程安全的。信号量会管理一个内部计数器该计数器会随每次acquire()调用递减并随每次release()调用递增。 计数器的值永远不会降到零以下当acquire()发现其值为零时它将保持阻塞直到有某个任务调用了release()使用 Semaphore 的推荐方式是通过async with语句。:semasyncio.Semaphore(10)# ... laterasyncwithsem:# work with shared resource这等价于:semasyncio.Semaphore(10)# ... laterawaitsem.acquire()try:# work with shared resourcefinally:sem.release()

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询