„Python“

„Python Asyncio“ mokymo programa

„Python Asyncio“ mokymo programa
„Asyncio“ biblioteka pristatoma „Python 3“.4, kad būtų vykdomos vienos srities lygiagrečios programos. Ši biblioteka yra populiari nei kitos bibliotekos ir sistemos dėl įspūdingo greičio ir įvairaus naudojimo. Ši biblioteka naudojama „Python“ programoje, kuriant, vykdant ir struktūrizuojant korutines programas ir vienu metu tvarkant kelias užduotis, neatliekant užduočių lygiagrečiai. Pagrindinės šios bibliotekos dalys yra apibrėžtos žemiau:

Korutina: Kodo dalis, kurią galima pristabdyti ir atnaujinti daugialypiu scenarijumi, vadinama korutine. korutinai bendradarbiauja daugybėje programų. Kai vienas korutinas pristabdomas, kitas korutinas gali vykdyti.

Įvykio ciklas: Jis naudojamas korutinų vykdymui pradėti ir įvesties / išvesties operacijoms tvarkyti. Tam reikia kelių užduočių ir jas atlikti.

Užduotis: Korutinų vykdymą ir rezultatą apibrėžia užduotys. Galite priskirti kelis užduočių skaičius naudodami „asyncio“ biblioteką ir paleisti užduotis asinchroniškai.

Ateitis: Jis veikia kaip būsima saugykla, kur baigiant korutinų rezultatas bus saugomas. Tai naudinga, kai bet kuris korutinas reikalauja laukti kito korutino rezultato.

Kaip galite įgyvendinti aukščiau pateiktas „asyncio“ bibliotekos sąvokas, parodyta šioje pamokoje naudojant keletą paprastų pavyzdžių.

1 pavyzdys: sukurkite vieną korutiną su viena užduotimi

Sukurkite failą pavadinimu asinchroninis1.py ir pridėkite šį kodą. „asyncio“ biblioteka importuojama norint naudoti šios bibliotekos funkcijas. papildyti funkcija deklaruojama tam tikro skaičių diapazono sumai apskaičiuoti. Skaičių diapazoną nuo 1 iki 101 užduotis priskiria uždelsdama vieną sekundę. Skelbiama, kad įvykių ciklas tęsis, kol bus atliktos visos pagrindinio metodo užduotys. Apskaičiavus vertę, funkcija lauks vieną sekundę ir išspausdins rezultatą.

importuoti asyncio
async def add (pradžia, pabaiga, laukimas):
# Inicializuokite sumos kintamąjį
suma = 0
#Suskaičiuokite visų skaičių sumą
n diapazone (pradžia, pabaiga):
suma + = n
# Palaukite paskirtų sekundžių
laukti asyncio.miegoti (laukti)
# Atspausdinkite rezultatą
spausdinti (f'Suma nuo pradžios iki pabaigos yra suma ')
„async def main“ ():
# Priskirkite vieną užduotį
task = kilpa.sukurti_užduotis (pridėti (1 101,1))
# Vykdykite užduotį asinchroniškai
laukti asyncio.palauk ([task])
jei __pavadinimas = = '__main__':
#Deklaruoti įvykių ciklą
kilpa = asinchronija.get_event_loop ()
# Paleiskite kodą, kol atliksite visas užduotis
kilpa.run_until_complete (main ())
# Uždarykite kilpą
kilpa.Uždaryti()

Išvestis:

$ python3 async1.py

Išvestyje rodoma suma nuo 1 iki 101, kuri yra 5050.

2 pavyzdys: sukurkite kelis korutinus

Asyncio bibliotekos naudojimas bus išvalytas, kai vienu metu vykdysite kelis korutinus. Sukurkite naują failą pavadinimu asinchroninis2.py ir pridėkite šį kodą. Sukuriamos trys užduotys su trimis skirtingais intervalais ir laukimo reikšmėmis pagrindinis () metodas. Pirmoji užduotis apskaičiuos sumą nuo 5 iki 500000 laukdama 3 sekundes, antroji užduotis apskaičiuos sumą nuo 2 iki 300000 laukdama 2 sekundes, o trečioji užduotis apskaičiuos sumą nuo 10 iki 1000 laukdama 1 sekundę. Užduotis su mažomis laukimo reikšmėmis iš pradžių bus baigta, o užduotis su didele laukimo verte bus baigta pagaliau.

importuoti asyncio
async def add (pradžia, pabaiga, laukimas):
# Inicializuokite sumos kintamąjį
suma = 0
#Suskaičiuokite visų skaičių sumą
n diapazone (pradžia, pabaiga):
suma + = n
# Palaukite paskirtų sekundžių
laukti asyncio.miegoti (laukti)
# Atspausdinkite rezultatą
spausdinti (f'Suma nuo pradžios iki pabaigos yra suma ')
async def main ():
# Paskirkite pirmąją užduotį
task1 = kilpa.create_task (pridėti (5 500 000 3))
# Priskirkite antrą užduotį
task2 = kilpa.create_task (pridėti (2,300000,2))
# Priskirkite trečią užduotį
task3 = kilpa.sukurti_užduotis (pridėti (10,1000,1))
# Vykdykite užduotis asinchroniškai
laukti asyncio.laukti ([task1, task2, task3])
jei __pavadinimas = = '__main__':
#Deklaruoti įvykių ciklą
kilpa = asinchronija.get_event_loop ()
# Paleiskite kodą, kol atliksite visas užduotis
kilpa.run_until_complete (main ())
# Uždarykite kilpą
kilpa.Uždaryti()

Išvestis:

$ python3 async1.py

Išvestis rodo, kad užduotis3 įvykdyta pirmiausia, nes šios užduoties laukimo laikas buvo tik 1 sekundė, o užduotis1 baigta paskutinė, nes šios užduoties laukimo laikas buvo 3 sekundės.

3 pavyzdys: korutinai su ateitimi

Šis pavyzdys rodo būsimo „asyncio“ bibliotekos objekto naudojimą. Sukurkite naują failą pavadinimu asinchroninis3.py ir pridėkite šį kodą. Šiame pavyzdyje ateityje bus paskirtos dvi užduotys. show_message Funkcija yra deklaruota čia, norint atsispausdinti pranešimą prieš vykdant programą ir baigus vykdyti. Pirmoji užduotis laukia 2 sekundes ir bus atlikta paskutinė. Antroji užduotis palauks 1 sekundę ir bus atlikta pirmiausia.

importuoti asyncio
async def show_message (skaičius, palaukite):
#Spausdinti pranešimą
spausdinti („Užduotis numeris veikia“)
# Palaukite paskirtų sekundžių
laukti asyncio.miegoti (laukti)
spausdinti (f'Užduotis numeris baigta ')
async def stop_after (kada):
laukti asyncio.miegoti (kada)
kilpa.sustabdyti()
async def main ():
# Paskirkite pirmąją užduotį
task1 = asinchronas.užtikrinti_ ateitį (rodyti_pranešimą (1,2))
spausdinti ('1 priedas')
# Priskirkite antrą užduotį
task2 = asinchronas.užtikrinti_ ateitį (parodyti_pranešimą (2,1))
spausdinti ('2 priedas')
# Vykdykite užduotis asinchroniškai
laukti asyncio.palaukti ([task1, task2])
jei __pavadinimas = = '__main__':
#Deklaruoti įvykio kilpą
kilpa = asinchronija.get_event_loop ()
# Paleiskite pagrindinio metodo kodą, kol atliksite visas užduotis
kilpa.run_until_complete (main ())

Išvestis:

$ python3 async3.py

Išvestyje parodyta, kad užduotis1 pradedama pirmiausia ir baigiama paskutinė, o užduotis2 pradedama vėliau, bet pirmiausia įvykdoma trumpam laukimo laikui.

Išvada

Čia paaiškinta pagrindinė asinchroninio programavimo, naudojant python asinchroninę biblioteką, samprata. Tikimės, kad jūs galėsite parašyti daugialypį kodą „python“ sistemoje, išbandę šios pamokos pavyzdžius.

Kaip pakeisti pelės ir jutiklinių plokščių slinkimo kryptį sistemoje „Windows 10“
Pelė ir Jutiklinė dalisTai ne tik palengvina skaičiavimus, bet ir efektyvesnį bei mažiau laiko reikalaujantį. Mes neįsivaizduojame gyvenimo be šių pri...
Kaip pakeisti pelės žymeklio ir žymeklio dydį, spalvą ir schemą sistemoje „Windows 10“
„Windows 10“ pelės žymeklis ir žymeklis yra labai svarbūs operacinės sistemos aspektai. Tai galima pasakyti ir apie kitas operacines sistemas, taigi, ...
Nemokami ir atvirojo kodo žaidimų varikliai, skirti kurti „Linux“ žaidimus
Šiame straipsnyje bus pateiktas nemokamų ir atvirojo kodo žaidimų variklių, kurie gali būti naudojami kuriant 2D ir 3D žaidimus „Linux“, sąrašas. Toki...