asyncio文档
asyncio具体特性
Lock(锁)
class AsyncAiohttp_Lock(AsyncAiohttp):
def __init__(self):
super(AsyncAiohttp_Lock,self).__init__()
self._time_lock = LOCK_TIME
def unlock(self,lock):
lock.release()
async def url_dict_onepage_async(self,*agrs):
with await agrs[1]:
await super(AsyncAiohttp_Lock,self).url_dict_onepage_async( agrs[0])
async def tasks_lock(self,loop,urls):
#创建一个锁
lock = asyncio.Lock()
#加锁
await lock.acquire()
#loop.call_later(delay, func, *args)延迟delay秒之后再执行。
#loop.call_at(when, func, *args) 某个时刻才执行。
#loop.call_soon( func, *args)顺序执行
#延迟self._time_lock 时间后执行 解锁
#事件循环变慢
loop.call_later(self._time_lock,functools.partial(self.unlock,lock))
await asyncio.wait([self.url_dict_onepage_async(url,lock) for url in urls])
def page_ELoop(self, urls):
# 获取EventLoop
loop = asyncio.get_event_loop()
# tasks = [self.url_dict_onepage_async(url) for url in urls]
# 执行coroutine
loop.run_until_complete(self.tasks_lock(loop,urls))
loop.close()
Event(事件)
'''
Event(事件)
Class implementing event objects. An event manages a flag that can be set<