Avui, és un dels llenguatges de programació més estimats de tot el món. Des dels seus inicis a la dècada de 1990, ha aconseguit un gran nombre d’aficionats i programadors que treballen cada dia per millorar aquest llenguatge de programació. Entre les moltes funcions integrades a l’ecosistema Python, una de les que més destaca és Threading. Per tant, en aquest article, parlarem de Threading a Python, de com podeu fer-ne ús juntament amb els seus avantatges i desavantatges.
Les següents indicacions es tractaran en aquest article,
- Què és un fil a Python?
- Començar un fil a Python
- Què són els fils de dimonis?
- Treballar amb diversos fils
Enfilament a Python
Què és un fil a Python?
Un fil a Python es pot definir simplement com un flux d’execució separat. Això significa simplement que al vostre programa s’executaran dos processos diferents al mateix temps. Un aspecte interessant de la conversió a Python és el fet que, després de la versió 3, diversos fils a Python no s’executen al mateix temps, sinó que només ho semblen.
com instal·lar Windows 10
Tot i que és una sensació sorprenent executar dos processos diferents alhora, cal entendre que la versió actual de Python 3 i versions posteriors està codificada de manera que només es pot executar un procés en qualsevol moment. No obstant això, si necessiteu dos o més processos junts al mateix temps a CPython, també heu de codificar part del vostre codi en altres idiomes, com ara C, C ++ i Java, i després executar-los a través de diversos fils a Python.
Un dels avantatges més coneguts del roscat a Python és la seva capacitat per proporcionar un guany en la claredat del disseny.
Abans d’això, tenim una idea de Threading a Python, entenem com iniciar un fil,
Començar un fil a Python
Ara que ja esteu acostumat a la definició d'un fil a Python, vegem un exemple sobre com podeu crear el vostre propi fil a Python. Per crear un fil a Python, primer heu d’importar la biblioteca de fils i, després, indicar-li que comenci () tal com es mostra a l’exemple següent:
importar registre importar filar temps d'importació def funció_file (nom): logging.info ('Fil% s: inici', nom) time.sleep (2) logging.info ('Fil% s: acabat', nom) si __name__ == '__main__': format = '% (asctime) s:% (message) s' logging.basicConfig (format = format, nivell = logging.INFO, datefmt = '% H:% M:% S') logging.info ( 'Main & ampampampnbsp & ampampampnbsp: abans de crear el fil') x = threading.Thread (target = thread_function, args = (1,)) logging.info ('Main & ampampampnbsp & ampampampnbsp: abans d'executar el fil') x.start () logging.info ('Main & ampampampnbsp & ampampampnbsp: espereu que acabi el fil ') # x.join () logging.info (' Principal & ampampampnbsp & ampampampnbsp: tot fet ')
Sortida
Quan executeu un fil a Python, el passeu com una funció que conté una llista d'arguments que ha d'executar. A l'exemple compartit anteriorment, esteu indicant a Python que executi el fil, thread_function () i que el passeu a 1 com a argument.
Quan executeu el programa anterior, la sortida tindrà un aspecte semblant.
El següent fragment d’aquest article sobre ‘Threading in Python’ ens permet veure quins són els fils del dimoni,
Què són els fils de dimonis?
En terminologia tècnica, el dimoni es pot definir com un procés que s'executa principalment en segon pla. Tanmateix, a Python, un fil de dimoni té un significat molt específic. A Python, un fil de dimoni s'apagarà en el moment que el programa hagi sortit, tot i que en altres llenguatges de programació continuarà executant-se en segon pla. Si en un programa determinat, un fil no està programat com a fil de dimoni, l’intèrpret esperarà que acabi el seu funcionament i només apagarà l’intèrpret.
Per entendre millor aquest concepte, consulteu l’exemple anterior. A la segona última línia, el programa espera uns segons després d’haver acabat totes les seves tasques. Això es deu al fet que està esperant que el fil no daemonic acabi el seu funcionament i, a continuació, surti de la interfície. Un cop el fil finalitza el seu funcionament, només surt el programa.
Ara anem a modificar el programa anterior i a veure què passa, si inserim un fil de dimoni al codi.
Nou codi: x = threading.Thread (target = thread_function, args = (1,), daemon = True)
Quan executeu el programa anterior amb les modificacions realitzades, tindrà un aspecte semblant.
La diferència entre aquestes dues sortides és que falta la línia final de la darrera. El fil_funció () no va tenir l'oportunitat de completar-lo, perquè vam inserir un fil de dimoni i, quan va arribar al final, va sortir del programa.
Unió a un fil
Ara que heu conegut el concepte de crear un fil a Python, juntament amb el concepte de fil demoníac, anem a descobrir com podeu unir fils a Python.
què és l’herència múltiple a Java
Mitjançant l'ús de la funció join () a Python podeu unir dos fils diferents i també instruir a un a esperar l'altre fins que finalitzi la seva execució. Aquesta funció sovint us serà útil quan codifiqueu aplicacions grans i necessiteu que tots els processos s’executin en un ordre concret
L’últim bitllet d’aquest article sobre 'Enviament a Python' us mostrarà els diversos fils que funcionen,
Treballar amb diversos fils
En els exemples anteriors hem parlat de com podeu treballar amb dos fils alhora. Però, què passa si en una situació determinada, heu de treballar amb diversos fils alhora. Per a una millor comprensió de la situació, mireu l’exemple següent.
importar registre importar filar temps d'importació def funció_file (nom): logging.info ('Fil% s: inici', nom) time.sleep (2) logging.info ('Fil% s: acabat', nom) si __name__ == '__main__': format = '% (asctime) s:% (message) s' logging.basicConfig (format = format, nivell = logging.INFO, datefmt = '% H:% M:% S') fils = llista ( ) per a l'índex de l'interval (3): logging.info ('Main & ampampampnbsp & ampampampnbsp: create and start thread% d.', index) x = threading.Thread (target = thread_function, args = (index,)) threads.append (x ) x.start () per a índex, fil enumerar (fils): logging.info ('Main & ampampampnbsp & ampampampnbsp: abans d'unir el fil% d.', index) thread.join () logging.info ('Main & ampampampnbsp & ampampampnbsp: fil% d fet ', índex)
Sortida
Al programa anterior hem seguit el mateix procediment per importar la biblioteca de fils, iniciar el fil, crear diversos fils i després utilitzar la funció join () per combinar-los junts i executar-los en un ordre concret.
Quan executeu el programa anterior, el resultat serà semblant a aquest.
Conclusió
És una de les funcions més útils de Python. En utilitzar-lo de la manera correcta, podeu fer que tot el vostre procés de codificació sigui molt més fàcil i eficient. A partir de l'article anterior, esperem que hàgiu après els conceptes bàsics del threading i que el continueu utilitzant en la vostra programació diària.
Així que és això, nois, espero que us hagi agradat aquest article.
Per obtenir coneixements en profunditat sobre Python juntament amb les seves diverses aplicacions, podeu fer-ho per a formació en línia en directe amb assistència les 24 hores del dia, els 7 dies de la setmana i accés durant tota la vida.
Tens alguna pregunta? Esmenta’ls a la secció de comentaris d’aquest article i et respondrem.