Threading Python: Uzziniet, kā strādāt ar Threads Python



Šis raksts par Threading Python pastāstīs, kas ir Threads, tā veidi, kā tos sākt un pēc iespējas labāk izmantot

Šodien ir viena no vismīļākajām programmēšanas valodām visā pasaulē. Kopš tās pirmsākumiem 1990. gados tā ir izpelnījusies milzīgu sekotāju skaitu, kā arī entuziastus un koderus, kas ikdienā strādā, lai padarītu šo programmēšanas valodu labāku. Starp daudzajām iespējām, kas iebūvētas Python ekosistēmā, visvairāk izceļas Threading. Tāpēc šajā rakstā mēs runāsim par Threading Python, kā jūs varat to izmantot kopā ar tā priekšrocībām un trūkumiem.

Šajā rakstā tiks apskatīti šādi norādījumi,





Ļaujiet mums sākt

Vītne Python

Kas ir pavediens Python?

Vītni Python var vienkārši definēt kā atsevišķu izpildes plūsmu. Ko tas vienkārši nozīmē, ka jūsu programmā vienlaikus tiks izpildīti divi dažādi procesi. Viens interesants Python vītņošanas aspekts ir fakts, ka pēc 3. versijas vairāki Python pavedieni netiek izpildīti vienlaikus, bet tie tikai šķiet.



Lai gan ir pārsteidzoša sajūta, ka vienlaikus darbojas divi dažādi procesi, ir jāsaprot, ka pašreizējā Python 3 un jaunāka versija ir kodēta tādā veidā, ka tikai procesu var palaist jebkurā noteiktā brīdī. Ja tomēr CPython nepieciešams vienlaikus veikt divus vai vairākus procesus, jums daļa no sava koda ir jākodē arī citās valodās, piemēram, C, C ++ un Java, un pēc tam palaidiet tos caur vairāku pavedienu veidošanu Python.

Viena no vispazīstamākajām vītņošanas priekšrocībām Python ir tā spēja nodrošināt dizaina skaidrību.

Pirms tam mums ir kāda ideja par Threading Python, ļaujiet mums saprast, kā sākt pavedienu,



Vītnes palaišana Python

Tagad, kad esat pieradis pie pavediena definīcijas Python, ļaujiet mums apskatīt piemēru par to, kā jūs varat izveidot savu pavedienu Python. Lai izveidotu pavedienu Python, vispirms jāimportē pavedienu bibliotēka un pēc tam jāuzdod tai sākt (), kā parādīts zemāk esošajā piemērā:

importēt reģistrēšanu importēt vītnes importēšanas laiku def thread_function (nosaukums): logging.info ('Thread% s: sākuma', nosaukums) time.sleep (2) logging.info ('Thread% s: apdare', nosaukums) if __name__ == '__main__': format = '% (asctime) s:% (message) s' logging.basicConfig (formāts = formāts, līmenis = reģistrēšana.INFO, datefmt = '% H:% M:% S') reģistrēšana.info ( 'Main & ampampampnbsp & ampampampnbsp: pirms pavediena izveidošanas') x = pavedieni. Vītne (target = thread_function, args = (1,)) logging.info ('Main & ampampampnbsp & ampampampnbsp: pirms pavediena palaišanas') x.start () logging.info ('Main & ampampampnbsp & ampampampnbsp: pagaidiet, līdz pavediens tiks pabeigts ') # x.join () logging.info (' Main & ampampampnbsp & ampampampnbsp: viss izdarīts ')

Rezultāts

Izlaide - vītne Python - Edureka

jaudas funkcija java veseliem skaitļiem

Palaidot pavedienu Python, jūs to nododat kā funkciju, kas satur izpildāmo argumentu sarakstu. Iepriekš kopīgotajā piemērā jūs uzdodat Python palaist pavedienu thread_function () un nodot to kā argumentu 1.

Palaidot iepriekš minēto programmu, izeja izskatīsies apmēram šādi.

Nākamais šī raksta gabals par ‘Threading in Python’ ļauj mums apskatīt, kas ir dēmonu pavedieni,

Kas ir dēmonu pavedieni?

Tehniskajā terminoloģijā dēmonu var definēt kā procesu, kas galvenokārt darbojas fonā. Tomēr Python dēmona pavedienam ir ļoti specifiska nozīme. Programmā Python dēmona pavediens tiks izslēgts no programmas aiziešanas brīža, lai gan citās programmēšanas valodās tas turpinās darboties fonā. Ja noteiktā programmā pavediens nav ieprogrammēts kā dēmona pavediens, tad tulks gaidīs, kamēr tas pabeigs savu darbību, un pēc tam tulku tikai izslēgs.

Lai labāk izprastu šo jēdzienu, ieskatieties iepriekš minētajā piemērā. Otrajā pēdējā rindā programma gaida dažas sekundes pēc visu savu uzdevumu pabeigšanas. Tas ir tāpēc, ka tā gaida, kad ne-daemoniskais pavediens pabeigs savu darbību un pēc tam izies no saskarnes. Kad pavediens ir pabeidzis darbību, programma iziet tikai.

Tagad modificēsim iepriekš minēto programmu un redzēsim, kas notiek, ja kodā ievietojam dēmonu pavedienu.

Jauns kods: x = threading. Thread (target = thread_function, args = (1,), daemon = True)

Palaižot iepriekš minēto programmu ar veiktajām modifikācijām, tas izskatīsies apmēram šādi.

Atšķirība starp šiem diviem rezultātiem ir tā, ka pēdējā rindiņā trūkst pēdējās rindas. Vītne_funkcija () nesaņēma iespēju pabeigt, jo mēs ievietojām dēmonu pavedienu un, tiklīdz tas drīz sasniedza beigas, tas aizgāja no programmas.

Pievienošanās pavedienam

Tagad, kad esat uzzinājis par pavediena izveidošanas Python koncepciju, kā arī ar daemonisku pavedienu, ļaujiet mums uzzināt, kā jūs varat savienot pavedienus Python.

Izmantojot Python funkciju join (), varat savienot divus dažādus pavedienus un arī dot norādījumu vienam gaidīt otru, līdz tas pabeidz izpildi. Šī funkcija bieži noderēs, kad kodējat lielas lietojumprogrammas, un jums ir nepieciešami visi procesi, kas jāveic noteiktā secībā

apvienot kārtot c ++ algoritmu

Šī raksta pēdējā daļa par “Threading in Python” parādīs darbojošos vairākus pavedienus,

Darbs ar vairākiem pavedieniem

Iepriekš minētajos piemēros mēs runājām par to, kā jūs varat strādāt ar diviem pavedieniem vienlaikus. Bet ko tad, ja noteiktā situācijā jums vienlaikus jāstrādā ar vairākiem pavedieniem. Lai labāk izprastu situāciju, ieskatieties zemāk redzamajā piemērā.

importēt reģistrēšanu importēt vītnes importēšanas laiku def thread_function (nosaukums): logging.info ('Thread% s: sākuma', nosaukums) time.sleep (2) logging.info ('Thread% s: apdare', nosaukums) if __name__ == '__main__': format = '% (asctime) s:% (message) s' logging.basicConfig (formāts = formāts, līmenis = reģistrēšana.INFO, datefmt = '% H:% M:% S') pavedieni = saraksts ( ) indeksam diapazonā (3): logging.info ('Main & ampampampnbsp & ampampampnbsp: izveidot un sākt pavedienu% d.', rādītājs) x = pavedieni. Vītne (target = thread_function, args = (index,)) threads.append (x ) x.start () indeksam, pavediens uzskaitījumā (pavedieni): logging.info ('Main & ampampampnbsp & ampampampnbsp: pirms pievienošanās pavedienam% d., rādītājs) thread.join () logging.info (' Main & ampampampnbsp & ampampampnbsp: pavediens% d izdarīts, indekss)

Rezultāts

Iepriekš minētajā programmā mēs esam ievērojuši to pašu pavedienu bibliotēkas importēšanas procedūru, palaižot pavedienu, izveidojot vairākus pavedienus un pēc tam izmantojiet funkciju join (), lai apvienotu visus kopā un izpildītu noteiktā secībā.

Palaidot iepriekš minēto programmu, rezultāts izskatīsies apmēram šādi.

Secinājums

kas ir __init__

Tā ir viena no ērtākajām Python funkcijām. Izmantojot to pareizi, jūs varat padarīt visu kodēšanas procesu daudz vieglāku un efektīvāku. No iepriekš minētā raksta mēs ceram, ka esat iemācījies vītņu pamatus un turpināsiet to izmantot ikdienas programmēšanā.

Tāpēc es ceru, ka šis raksts jums patika.

Lai iegūtu padziļinātas zināšanas par Python kopā ar dažādām lietojumprogrammām, varat tiešsaistes apmācībai tiešsaistē ar diennakts atbalstu un piekļuvi mūža garumā.

Vai mums ir jautājums? Pieminiet tos šī raksta komentāru sadaļā, un mēs ar jums sazināsimies.