国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁(yè) > news >正文

網(wǎng)站大屏輪播圖效果怎么做公眾號(hào)排名優(yōu)化軟件

網(wǎng)站大屏輪播圖效果怎么做,公眾號(hào)排名優(yōu)化軟件,網(wǎng)站的域名是什么,網(wǎng)站制作軟件手機(jī)版免責(zé)聲明:本文僅做技術(shù)交流與學(xué)習(xí)... 目錄 了解進(jìn)程和線程 單個(gè)線程(主線程)在執(zhí)行 多線程 線程池 協(xié)程(爬蟲(chóng)多用) 假異步:(同步) 真異步: 爬蟲(chóng)代碼模版 異步-爬蟲(chóng) 同步效果--19秒 異步效果--7秒 了解進(jìn)程和線程 ? # --------------------> # ------> # …

免責(zé)聲明:本文僅做技術(shù)交流與學(xué)習(xí)...?

目錄

了解進(jìn)程和線程

單個(gè)線程(主線程)在執(zhí)行

多線程

線程池

協(xié)程(爬蟲(chóng)多用)

假異步:(同步)

真異步:

爬蟲(chóng)代碼模版

異步-爬蟲(chóng)

同步效果--19+秒

異步效果--7+秒


了解進(jìn)程和線程

?
# -------------------->
# ------>
# ? ? ? ------->
# ? ? ? ? ? ? ? -------->
?
# 1-線程
#線程:執(zhí)行一個(gè)軟件后的操作---點(diǎn)贊,簽到,評(píng)論等等
#進(jìn)程:執(zhí)行一個(gè)軟件
?
?
一家公司里面人去做事.
1人,2人,多人...
(要合理分配,合理運(yùn)用.)
--30萬(wàn)的資本,養(yǎng)不起10000人呀.
?
1個(gè)進(jìn)程必須要有一個(gè)線程,--- 線程不是越多越好.
單線程/多線程
?
?
進(jìn)程:資源單元
線程:執(zhí)行單元
?
?
?
?
# 每一個(gè)py程序默認(rèn)都有一個(gè)線程的,
print("111")
?

單個(gè)線程(主線程)在執(zhí)行


多線程

from threading import Thread
# alt + enter 快捷鍵導(dǎo)包
?
def func(name):for i in range(1, 1000):print("func函數(shù)在執(zhí)行---" + str(i),name)
?
?
# func()  # 這樣寫(xiě)就是主線程執(zhí)行.
?
# 創(chuàng)建線程對(duì)象,分配線程的任務(wù)是func ? (公司招人要分配任務(wù))
t = Thread(target=func,args=('my name xiaodi',)) ? # args的參數(shù)必須是一個(gè)元組.
# 啟動(dòng)線程: ? ? ? ? ? ? ? ? ? ? ? (員工先忙完手頭工作,然后真正工作)
t.start() ? # 線程的狀態(tài),可以開(kāi)始工作的狀態(tài)了,具體的執(zhí)行時(shí)間由CPU決定.
?
t1 = Thread(target=func,args=('xiaosedi',))
t1.start()
?
# 主線程不會(huì)受到子線程(其他線程)的干擾.  主線程該干什么就干什么.
for i in range(1, 1000):print("主---" + str(i))
# 多個(gè)線程都輸出到控制臺(tái)上,就會(huì)亂.
?
# 傳參在創(chuàng)建線程對(duì)象時(shí)也要傳.
?
# 線程數(shù)由電腦的CPU決定,如果處理不好,反而會(huì)效率下降.
?


線程池

# 線程池 :一次性開(kāi)辟一些線程,直接給線程池提交任務(wù),具體的任務(wù)到底哪個(gè)線程執(zhí)行,是由線程池分配的
from concurrent.futures.thread import ThreadPoolExecutor
?
?
def func(name):for i in range(1000):print(name, 'func函數(shù)執(zhí)行', i)
?
?
# 創(chuàng)建一個(gè)有50個(gè)線程的線程池.(合理的利用資源~)
# -----執(zhí)行10次func函數(shù),每個(gè)func函數(shù)執(zhí)行1000次.
with ThreadPoolExecutor(50) as t:# ? ? t = ThreadPoolExecutor(50)for i in range(10):# 給線程去提交任務(wù)t.submit(func, name=f'線程{i}')
?
# 等待線程池中的任務(wù)全部執(zhí)行完畢,才會(huì)繼續(xù)執(zhí)行
print('print執(zhí)行了')


協(xié)程(爬蟲(chóng)多用)

import asyncio
import time
?
def func():print("函數(shù)開(kāi)始")time.sleep(3) ? # 當(dāng)?shù)酱藭r(shí),當(dāng)前線程為阻塞狀態(tài),CPU不會(huì)為當(dāng)前程序提供工作.print("函數(shù)結(jié)束")
func()
?
# 阻塞代碼:(必須要等待某個(gè)結(jié)果等等
# input(等待輸入) ? time.sleep(強(qiáng)制等待) ?  requests(請(qǐng)求網(wǎng)絡(luò),client<->server有時(shí)間差,
# 程序基于 i(input) o(output) 操作時(shí),線程機(jī)會(huì)處于阻塞狀態(tài),CPU就不會(huì)提供工作.
# ---阻塞的時(shí)候就會(huì)干等著,---怎么讓CPU在干等著的時(shí)候也做點(diǎn)事情呢?--->協(xié)程!!!
?
# 協(xié)程:當(dāng)程序遇見(jiàn)了io操作的時(shí)候,可以選擇性的切換到其它任務(wù)上。
# 多任務(wù)異步操作:

假異步:(同步)

import asyncio
import time
?
?
async def func1():print('func1函數(shù)開(kāi)始')time.sleep(3) ?# 屬于同步操作代碼。# 只要在異步程序中出現(xiàn)了同步操作,異步就被中斷# await asyncio.sleep(3)print('func1函數(shù)結(jié)束')
?
?
async def func2():print('func2函數(shù)開(kāi)始')time.sleep(2)# await asyncio.sleep(2)print('func2函數(shù)結(jié)束')
?
?
async def func3():print('func3函數(shù)開(kāi)始')time.sleep(4)# await asyncio.sleep(4)print('func3函數(shù)結(jié)束')
?
?
# 拿到函數(shù)的對(duì)象
f1 = func1()
f2 = func2()
f3 = func3()
tasks = [# 創(chuàng)建一個(gè)任務(wù)f1, f2, f3
]
start = time.time()
# 如果是多個(gè)任務(wù),需要一個(gè)asyncio.wait(任務(wù)列表)搭配
asyncio.run(asyncio.wait(tasks))
print(time.time() - start)
?

9+秒結(jié)束!!! ---沒(méi)有異步呀---

因?yàn)閠ime是一個(gè)同步模塊,

time.sleep()  # 屬于同步操作代碼。
# 只要在異步程序中出現(xiàn)了同步操作,異步就被中斷

真異步:

import asyncio
import time
?
?
async def func1():print('func1函數(shù)開(kāi)始')# time.sleep(3) ? ? ? ? # 屬于同步操作代碼await asyncio.sleep(3) ?# 異步休眠代碼 ? ? ? --不是強(qiáng)制性的休眠,而是掛起,讓他先去忙別的東西,等好了再回來(lái).print('func1函數(shù)結(jié)束')
?
?
async def func2():print('func2函數(shù)開(kāi)始')# time.sleep(2)await asyncio.sleep(2)print('func2函數(shù)結(jié)束')
?
?
async def func3():print('func3函數(shù)開(kāi)始')# time.sleep(4)await asyncio.sleep(4)print('func3函數(shù)結(jié)束')#async def main():
# ? ? f1 = func1()
# ? ? f2 = func2()
# ? ? f3 = func3()
# ? ? tasks = [
# ? ? ? ? f1,f2,f3
# ? ? ? ? # 創(chuàng)建一個(gè)任務(wù)
# ? ? ? ? # asyncio.create_task(func1()),
# ? ? ? ? # asyncio.create_task(func2()),
# ? ? ? ? # asyncio.create_task(func3())
# ? ? ]
# ? ? await asyncio.wait(tasks)
# start = time.time()
# asyncio.run(main())
# print(time.time() - start)
?
f1 = func1()
f2 = func2()
f3 = func3()
tasks = [f1, f2, f3# 創(chuàng)建一個(gè)任務(wù)
]
?
start = time.time()
# 如果是多個(gè)任務(wù),需要一個(gè)asyncio.wait(任務(wù)列表)搭配
asyncio.run(asyncio.wait(tasks))
print(time.time() - start)

4+秒 , 好快呀...


爬蟲(chóng)代碼模版

import asyncio
?
?
async def download(url):print('準(zhǔn)備開(kāi)始下載')# await asyncio.sleep(2) # 網(wǎng)絡(luò)請(qǐng)求# requests.get(url) ? ?  # 異步效果中斷,那怎么結(jié)合呢???print('下載完成')
?
?
async def main():urls = ['地址1','地址2','地址3',]# tasks = []# for url in urls:# ?  tasks.append(download(url))
?# 列表推導(dǎo)式寫(xiě)法 循環(huán)url列表,每循環(huán)一次,創(chuàng)建一個(gè)任務(wù)tasks = [download(url) for url in urls]await asyncio.wait(tasks)
?
?
asyncio.run(main())
?

requests.get(url) # 異步效果中斷,那怎么結(jié)合呢???

只要出現(xiàn)同步操作,異步就會(huì)被終斷.

-------->


異步-爬蟲(chóng)

因?yàn)閞equests模塊是同步的,如果在異步協(xié)程中編寫(xiě)同步代碼,異步效果沒(méi)有。
?
如何解決?
更換支持異步的請(qǐng)求模塊
aiohttp  == requests
pip install aiohttp
pip install aiofiles

同步效果--19+秒

import time
import requests
?
urls = ['https://www.cgwallpapers.com/wallpapers_free_wreoiux/wallpaper_christian_dimitrov_02_1920x1080.jpg','https://www.cgwallpapers.com/wallpapers_free_wreoiux/wallpaper_pablo_carpio_17_1920x1080.jpg','https://www.cgwallpapers.com/wallpapers_free_wreoiux/wallpaper_dejian_wu_04_1920x1080.jpg'
]
t = time.time()
for url in urls:res = requests.get(url).content# 文件名name = url.split('/')[-1]with open(name, 'wb') as f:f.write(res)
print(f'requests花費(fèi)時(shí)間===》{time.time() - t}')
# requests花費(fèi)時(shí)間===》19.635247230529785

異步效果--7+秒

import asyncio
import time
import aiofiles
import aiohttp
urls = ['https://www.cgwallpapers.com/wallpapers_free_wreoiux/wallpaper_christian_dimitrov_02_1920x1080.jpg','https://www.cgwallpapers.com/wallpapers_free_wreoiux/wallpaper_pablo_carpio_17_1920x1080.jpg','https://www.cgwallpapers.com/wallpapers_free_wreoiux/wallpaper_dejian_wu_04_1920x1080.jpg'
]
async def download(url):print('準(zhǔn)備開(kāi)始下載--->')# s = aiohttp.ClientSession()  == requests ? ? ? ? ? ?  #拿到對(duì)象# s.get() s.post  ===  requests.get() requests.post()# --------------------------------------# aiohttp ? ? ? ? ? ? ? ? ?  requests# res.text() ? ? ? ? ? ? ? ?  res.text# res.read() ? ? ? ? ? ? ? ?  res.content# res.json() ? ? ? ? ? ? ? ?  res.json()# --------------------------------------async with aiohttp.ClientSession() as s:async with s.get(url) as res:# 寫(xiě)入文件name = url.split('/')[-1]# 文件正常操作:# with open(name,'wb')as f:# ? ? f.write(await res.read())# 文件異步操作:async with aiofiles.open(name, 'wb') as f:await f.write(await res.read())print('下載完成')
async def main(urls):tasks = [download(url) for url in urls]await asyncio.wait(tasks)
t = time.time()
asyncio.run(main(urls))
print(f'aiohttp花費(fèi)時(shí)間===》{time.time() - t}')
# aiohttp花費(fèi)時(shí)間===》7.244250774383545
?

http://aloenet.com.cn/news/46062.html

相關(guān)文章:

  • 怎樣做永久網(wǎng)站二維碼北京seo公司有哪些
  • 網(wǎng)站做線上銷(xiāo)售蘇州百度關(guān)鍵詞優(yōu)化
  • wordpress兼職sem seo
  • 精品網(wǎng)站建設(shè)平臺(tái)如何自己免費(fèi)制作網(wǎng)站
  • 哈爾濱網(wǎng)站建設(shè)外包公司申請(qǐng)自媒體平臺(tái)注冊(cè)
  • 網(wǎng)站建設(shè)銷(xiāo)售問(wèn)答品牌營(yíng)銷(xiāo)是什么
  • ps 怎么做網(wǎng)站杭州網(wǎng)站定制
  • win7 iis創(chuàng)建網(wǎng)站網(wǎng)絡(luò)推廣營(yíng)銷(xiāo)網(wǎng)
  • 重慶網(wǎng)站建設(shè)吧營(yíng)銷(xiāo)型網(wǎng)站
  • 自己制作的網(wǎng)站怎么做分頁(yè)今日時(shí)事新聞
  • 寧波網(wǎng)站建設(shè)的企業(yè)太原今日頭條
  • 百度推廣做網(wǎng)站什么價(jià)位網(wǎng)站開(kāi)發(fā)流程的8個(gè)步驟
  • asp網(wǎng)站vps搬家2024年重大新聞簡(jiǎn)短
  • 武漢做網(wǎng)站找哪家好世界球隊(duì)最新排名榜
  • 杭州未來(lái)科技網(wǎng)站建設(shè)高端建站
  • 企業(yè)信用網(wǎng)查詢網(wǎng)站優(yōu)化推廣培訓(xùn)
  • 建甌網(wǎng)站制作百度網(wǎng)站怎么提升排名
  • 自己做產(chǎn)品品牌網(wǎng)站谷歌官網(wǎng)網(wǎng)址
  • 杭州富陽(yáng)區(qū)網(wǎng)站建設(shè)公司seo排名軟件有用嗎
  • 鄭州響應(yīng)式網(wǎng)站建設(shè)如何找外包的銷(xiāo)售團(tuán)隊(duì)
  • 網(wǎng)絡(luò)工作室頭像seo積分優(yōu)化
  • 用flash做的網(wǎng)站展示品牌策劃方案模板
  • 網(wǎng)站二級(jí)域名 權(quán)重 盧松松學(xué)seo網(wǎng)絡(luò)推廣
  • 國(guó)內(nèi)醫(yī)療美容網(wǎng)站建設(shè)培訓(xùn)機(jī)構(gòu)不退費(fèi)最有效方式
  • 電子書(shū)推送網(wǎng)站怎么做會(huì)計(jì)培訓(xùn)班
  • 政府采購(gòu)網(wǎng)站的建設(shè)情況bing收錄提交
  • 個(gè)人博客網(wǎng)站開(kāi)發(fā)的原因鄭州seo排名優(yōu)化公司
  • flash 做ppt的模板下載網(wǎng)站北京seo招聘信息
  • wordpress 命令插件東莞seo靠譜
  • wap網(wǎng)站開(kāi)發(fā)協(xié)議個(gè)人推廣網(wǎng)站