• async semphore


    async semphore

    1、Semaphore 是协程中用于控制某资源同时被访问的个数

    2、Semaphore 维护了当前访问的个数,提供同步机制,控制同时访问的个数

    async def main(self):
            tasks = []
            # 在调用协程之前实例化一个信号量
            local_data, details_data = await self.get_local_data()
            semaphore = asyncio.BoundedSemaphore(10)
            for kol in local_data:
                # 将信号量传递给将进行限制的协程
                task = asyncio.create_task(self.pc_crawl(kol, details_data, semaphore))
                tasks.append(task)
    
            for task in tasks:
                await task
    
    async def pc_crawl(self, kol, details_data, semaphore):
        # 只有在信号量可以被获取的情况下才能进入
        async with semaphore:
            async with httpx.AsyncClient() as client:
                ...
    

  • 相关阅读:
    gil
    异步
    字符串 最长回文字串
    字符串 最长公共前缀
    数组 合并区间
    python 排序
    2021.9.3 阿里笔试AK贴
    SIP协议详解
    fiddler抓包各字段的含义
    常见的HTTP状态码列表
  • 原文地址:https://www.cnblogs.com/kai-/p/14153685.html
Copyright © 2020-2023  润新知