Threading In Python: Μάθετε πώς να εργάζεστε με νήματα στο Python



Αυτό το άρθρο σχετικά με το νήμα στο Python θα σας πει τι είναι τα νήματα, οι τύποι του, πώς να τα ξεκινήσετε και να τα χρησιμοποιήσετε με τον καλύτερο δυνατό τρόπο

Σήμερα, είναι μια από τις πιο αγαπημένες γλώσσες προγραμματισμού σε όλο τον κόσμο. Από την ίδρυσή της στη δεκαετία του 1990, έχει συγκεντρώσει ένα τεράστιο κοινό και ενθουσιώδεις και κωδικοποιητές που εργάζονται καθημερινά για να κάνουν αυτή τη γλώσσα προγραμματισμού καλύτερη. Μεταξύ των πολλών χαρακτηριστικών που ενσωματώνονται στο οικοσύστημα Python, αυτό που ξεχωρίζει περισσότερο είναι το Threading. Επομένως, σε αυτό το άρθρο, θα μιλήσουμε για το Threading στο Python, πώς μπορείτε να το χρησιμοποιήσετε μαζί με τα πλεονεκτήματα και τα μειονεκτήματά του.

Οι ακόλουθοι δείκτες θα καλυφθούν σε αυτό το άρθρο,





Ας ξεκινήσουμε

Νήματα στο Python

Τι είναι το νήμα στο Python;

Ένα νήμα στο Python μπορεί απλά να οριστεί ως ξεχωριστή ροή εκτέλεσης. Αυτό σημαίνει απλώς ότι στο πρόγραμμά σας, θα εκτελούνται δύο διαφορετικές διαδικασίες ταυτόχρονα. Μια ενδιαφέρουσα πτυχή του νήματος στο Python είναι το γεγονός ότι, μετά την έκδοση 3, πολλά νήματα στο Python δεν εκτελούνται ταυτόχρονα, αλλά απλώς φαίνεται.



αναδρομή c ++ fibonacci

Ενώ είναι εκπληκτικό συναίσθημα να εκτελείτε δύο διαφορετικές διαδικασίες ταυτόχρονα, πρέπει να καταλάβετε ότι η τρέχουσα έκδοση του Python 3 και άνω είναι κωδικοποιημένη με τέτοιο τρόπο, ότι μόνο η διαδικασία μπορεί να εκτελεστεί σε οποιοδήποτε δεδομένο χρονικό σημείο. Εάν, ωστόσο, χρειάζεστε δύο ή περισσότερες διαδικασίες ταυτόχρονα στο CPython, θα πρέπει να κωδικοποιήσετε και κάποιον από τον κώδικά σας και σε άλλες γλώσσες, όπως C, C ++ και Java και, στη συνέχεια, να τους εκτελέσετε μέσω πολλαπλών σπειρωμάτων στο Python.

Ένα από τα πιο γνωστά πλεονεκτήματα του νήματος στο Python είναι η ικανότητά του να παρέχει κέρδος στη σαφήνεια του σχεδιασμού.

Πριν από αυτό έχουμε κάποια ιδέα για το Threading στο Python, ας καταλάβουμε πώς να ξεκινήσουμε ένα νήμα,



Ξεκινώντας ένα νήμα στο Python

Τώρα που είστε εξοικειωμένοι με τον ορισμό ενός νήματος στο Python, ας ρίξουμε μια ματιά σε ένα παράδειγμα για το πώς μπορείτε να δημιουργήσετε το δικό σας νήμα στο Python. Για να δημιουργήσετε ένα νήμα στο Python, πρέπει πρώτα να εισαγάγετε τη βιβλιοθήκη νημάτων και, στη συνέχεια, να το καθοδηγήσετε να ξεκινήσει () όπως φαίνεται στο παρακάτω παράδειγμα:

import logging import threading import time def thread_function (name): logging.info ('Thread% s: start', name) time.sleep (2) logging.info ('Thread% s: finishing', name) εάν __name__ == '__main__': format = '% (asctime) s:% (message) s' logging.basicConfig (format = format, level = logging.INFO, datefmt = '% H:% M:% S') logging.info ( 'Main & ampampampnbsp & ampampampnbsp: before create thread') x = threading. Thread (target = thread_function, args = (1,)) logging.info ('Main & ampampampnbsp & ampampampnbsp: before running thread') x.start () logging.info ('Main & ampampampnbsp & ampampampnbsp: περιμένετε να τελειώσει το νήμα ') # x.join () logging.info (' Main & ampampampnbsp & ampampampnbsp: all done ')

Παραγωγή

Έξοδος - Νήματα στο Python - Edureka

Όταν εκτελείτε ένα νήμα στο Python, το μεταβιβάζετε ως συνάρτηση που περιέχει μια λίστα ορισμάτων που πρέπει να εκτελέσει. Στο παράδειγμα που κοινοποιήθηκε παραπάνω, δίνετε εντολή στην Python να εκτελέσει το νήμα, το thread_function () και να το μεταβιβάσει στο 1 ως επιχείρημα.

Όταν εκτελείτε το παραπάνω πρόγραμμα, η έξοδος θα μοιάζει με αυτό.

Το επόμενο κομμάτι αυτού του άρθρου σχετικά με το 'Threading in Python' ας δούμε τι είναι τα νήματα δαίμονα,

Τι είναι τα νήματα Daemon;

Στην τεχνική ορολογία, ο δαίμονας μπορεί να οριστεί ως μια διαδικασία που εκτελείται κυρίως στο παρασκήνιο. Ωστόσο, στην Python, ένα νήμα δαίμονα έχει μια πολύ συγκεκριμένη έννοια. Στο Python ένα νήμα δαίμονα θα κλείσει τη στιγμή που θα τερματίσει το πρόγραμμα, αν και σε άλλες γλώσσες προγραμματισμού θα συνεχίσει να τρέχει στο παρασκήνιο. Εάν σε ένα συγκεκριμένο πρόγραμμα, ένα νήμα δεν έχει προγραμματιστεί ως νήμα δαίμονα, τότε ο διερμηνέας θα περιμένει να τελειώσει τη λειτουργία του και, στη συνέχεια, απενεργοποιεί μόνο τον διερμηνέα.

Για να κατανοήσετε καλύτερα αυτήν την έννοια ρίξτε μια ματιά στο παραπάνω παράδειγμα. Στη δεύτερη τελευταία γραμμή, το πρόγραμμα περιμένει λίγα δευτερόλεπτα αφού ολοκληρώσει όλες τις εργασίες του. Αυτό συμβαίνει επειδή περιμένει το μη δαιμονικό νήμα να ολοκληρώσει τη λειτουργία του και στη συνέχεια να βγεί από τη διεπαφή. Μόλις το νήμα τελειώσει τη λειτουργία του, τότε μόνο το πρόγραμμα θα κλείσει.

Τώρα ας τροποποιήσουμε το παραπάνω πρόγραμμα και να δούμε τι θα συμβεί, εάν εισάγουμε ένα νήμα δαίμονα στον κώδικα.

Νέος κωδικός: x = threading. Thread (target = thread_function, args = (1,), daemon = True)

Όταν εκτελείτε το παραπάνω πρόγραμμα με τις τροποποιήσεις που γίνονται, θα μοιάζει κάπως έτσι.

Η διαφορά μεταξύ αυτών των δύο εξόδων είναι ότι η τελική γραμμή λείπει από την τελευταία. Το thread_function () δεν είχε την ευκαιρία να ολοκληρωθεί, επειδή εισαγάγαμε ένα νήμα δαίμονα και μόλις έφτασε στο τέλος, βγήκε από το πρόγραμμα.

Συμμετοχή σε ένα νήμα

tutorial mysql για αρχάριους με παραδείγματα

Τώρα που έχετε μάθει για την ιδέα της δημιουργίας ενός νήματος στο Python, μαζί με την έννοια ενός δαιμονικού νήματος, ας ανακαλύψουμε πώς μπορείτε να ενώσετε νήματα στο Python.

Χρησιμοποιώντας τη συνάρτηση join () στο Python μπορείτε να ενώσετε δύο διαφορετικά νήματα και επίσης να δώσετε εντολή στο ένα να περιμένει το άλλο μέχρι να ολοκληρώσει την εκτέλεση του. Αυτή η δυνατότητα θα είναι συχνά χρήσιμη όταν κωδικοποιείτε μεγάλες εφαρμογές και χρειάζεστε όλες τις διαδικασίες για να εκτελεστούν με μια συγκεκριμένη σειρά

Το τελευταίο κομμάτι αυτού του άρθρου σχετικά με το 'Threading in Python' θα σας δείξει τα πολλαπλά νήματα που λειτουργούν,

Εργασία με πολλαπλά νήματα

Στα παραπάνω παραδείγματα έχουμε μιλήσει για το πώς μπορείτε να εργαστείτε με δύο νήματα ταυτόχρονα. Αλλά τι γίνεται αν σε μια συγκεκριμένη κατάσταση, πρέπει να εργαστείτε με πολλά νήματα ταυτόχρονα. Για καλύτερη κατανόηση της κατάστασης, ρίξτε μια ματιά στο παρακάτω παράδειγμα.

import logging import threading import time def thread_function (name): logging.info ('Thread% s: start', name) time.sleep (2) logging.info ('Thread% s: finishing', name) εάν __name__ == '__main__': format = '% (asctime) s:% (message) s' logging.basicConfig (format = format, level = logging.INFO, datefmt = '% H:% M:% S') threads = list ( ) για ευρετήριο στο εύρος (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 () για ευρετήριο, νήμα σε απαρίθμηση (νήματα): logging.info ('Main & ampampampnbsp & ampampampnbsp: before join thread% d.', index) thread.join () logging.info ('Main & ampampampnbsp & ampampampnbsp: thread% d τελειωμένο », ευρετήριο)

Παραγωγή

Στο παραπάνω πρόγραμμα ακολουθήσαμε την ίδια διαδικασία εισαγωγής της βιβλιοθήκης νήματος, εκκίνησης του νήματος, δημιουργίας πολλαπλών νημάτων και στη συνέχεια χρησιμοποιήστε τη συνάρτηση join () για να συνδυάσετε όλα μαζί και να εκτελεστεί με μια συγκεκριμένη σειρά.

Όταν εκτελείτε το παραπάνω πρόγραμμα, το αποτέλεσμα θα μοιάζει με αυτό.

διαφορά μεταξύ τελικού και οριστικοποίησης

συμπέρασμα

Είναι ένα από τα πιο εύχρηστα χαρακτηριστικά του Python. Χρησιμοποιώντας το με τον σωστό τρόπο, μπορείτε να κάνετε ολόκληρη τη διαδικασία κωδικοποίησης σας πολύ πιο εύκολη και αποτελεσματική. Από το παραπάνω άρθρο ελπίζουμε ότι έχετε μάθει τα βασικά του νήματος και θα συνεχίσετε να το χρησιμοποιείτε στον καθημερινό προγραμματισμό σας.

Γι 'αυτό είναι παιδιά, ελπίζω να σας άρεσε αυτό το άρθρο.

Για να μάθετε σε βάθος την Python μαζί με τις διάφορες εφαρμογές της, μπορείτε για ζωντανή διαδικτυακή εκπαίδευση με 24ωρη υποστήριξη και πρόσβαση σε όλη τη διάρκεια ζωής.

Έχετε μια ερώτηση για εμάς; Αναφέρετέ τα στην ενότητα σχολίων αυτού του άρθρου και θα επικοινωνήσουμε μαζί σας.