zoukankan      html  css  js  c++  java
  • asyncio Lock,Queue

    #
    # total = 0
    #
    # async def add():
    #     #1. dosomething1
    #     #2. io操作
    #     # 1. dosomething3
    #     global total
    #     for i in range(1000000):
    #         total += 1
    # async def desc():
    #     global total
    #     for i in range(1000000):
    #         total -= 1
    #
    # if __name__ == "__main__":
    #     import asyncio
    #     tasks = [add(),desc()]
    #     loop = asyncio.get_event_loop()
    #     loop.run_until_complete(asyncio.wait(tasks))
    #     print(total)
    
    import asyncio
    import aiohttp
    from asyncio import Lock,Queue
    cache = {}
    lock = Lock()
    queue = Queue()
    
    # await queue.get()
    queue = []# 如果不用限流
    
    async def get_stuff(url):
        async with lock:
            if url in cache:
                return cache[url]
            stuff = await aiohttp.request('GET',url)
            cache[url] = stuff
            return stuff
    
    
    async def parse_stuff():
        stuff = await get_stuff()
        #do some parsing
    
    
    async def use_stuff():
        stuff = await get_stuff()
        #use some parsing
    
    tasks = [parse_stuff(),use_stuff()]
  • 相关阅读:
    PHP获取指定的时间戳
    Elasticsearch
    git有用基本指令
    php中的json_decode
    有用的sql积累
    git submodule使用原理
    mysql重复插入时insert更改为update更新操作
    jpm
    awk 语句
    tomcat 发布简单的html网站
  • 原文地址:https://www.cnblogs.com/Erick-L/p/8939213.html
Copyright © 2011-2022 走看看