import time
#导入线程池模块
from multiprocessing.dummy import Pool
kia=time.time()
def get_lsd(str):
print('正在下载:',str)
time.sleep(2)
print('下载成功:', str)
ls=['ad','ss','ww',]
#实例化一个线程池对象
pool=Pool(4)
pool.map(get_lsd,ls)
f=time.time()
print(f-kia)
pool.close()
pool.join()
异步·
```python
#异步
import asyncio
import time
import aiohttp
from lxml import etree
star=time.time()
urls=[
'https://www.qiushibaike.com/text/page/2/','https://www.qiushibaike.com/text/page/3/','https://www.qiushibaike.com/text/page/4/'
]
async def get_page(url):
async with aiohttp.ClientSession() as session:
async with await session.get(url) as respone:
#获取响应数据操作之前一定要使用await进行手动挂起
pade= await respone.text()
html=etree.HTML(pade)
duan=html.xpath('//*[@class="author clearfix"]//a/h2/text()')
for i in duan:
print(i)
print('#'*100)
tasks = []
for url in urls:
c=get_page(url)
task= asyncio.ensure_future(c)
tasks.append(task)
loop = asyncio.get_event_loop()
loop.run_until_complete(asyncio.wait(tasks))
end=time.time()
print('总耗时:',end-star)
异步调用函数,先绑定函数,在进行调用。
其他用法
关注公众号,回复 【1】,获取视频教学链接。