Λειτουργία Python sleep () (Με παραδείγματα)

Η λειτουργία αναστολής () αναστέλλει (περιμένει) την εκτέλεση του τρέχοντος νήματος για δεδομένο αριθμό δευτερολέπτων.

Η Python διαθέτει μια ενότητα με το όνομα ώρα που παρέχει πολλές χρήσιμες λειτουργίες για τον χειρισμό εργασιών που σχετίζονται με το χρόνο. Μία από τις δημοφιλείς λειτουργίες μεταξύ τους είναι sleep().

Η sleep()συνάρτηση αναστέλλει την εκτέλεση του τρέχοντος νήματος για δεδομένο αριθμό δευτερολέπτων.

Παράδειγμα 1: Ύπνος Python ()

  import time print("Printed immediately.") time.sleep(2.4) print("Printed after 2.4 seconds.") 

Δείτε πώς λειτουργεί αυτό το πρόγραμμα:

  • "Printed immediately" εκτυπώνεται
  • Αναστολή εκτέλεσης (καθυστερήσεις) για 2,4 δευτερόλεπτα.
  • "Printed after 2.4 seconds" εκτυπώνεται.

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

Πριν από το Python 3.5 , ο πραγματικός χρόνος αναστολής μπορεί να είναι μικρότερος από το όρισμα που καθορίζεται στη time()συνάρτηση.

Από το Python 3.5 , ο χρόνος αναστολής θα είναι τουλάχιστον τα καθορισμένα δευτερόλεπτα.

Παράδειγμα 2: Η Python δημιουργεί ένα ψηφιακό ρολόι

 import time while True: localtime = time.localtime() result = time.strftime("%I:%M:%S %p", localtime) print(result) time.sleep(1) 

Στο παραπάνω πρόγραμμα, υπολογίσαμε και εκτυπώσαμε την τρέχουσα τοπική ώρα μέσα στον ατελείωτο βρόχο. Στη συνέχεια, το πρόγραμμα περιμένει 1 δευτερόλεπτο. Και πάλι, η τρέχουσα τοπική ώρα υπολογίζεται και εκτυπώνεται. Αυτή η διαδικασία συνεχίζεται.

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

 02:10:50 ΜΜ 02:10:51 ΜΜ 02:10:52 ΜΜ 02:10:53 ΜΜ 02:10:54 ΜΜ… 

Εδώ είναι μια ελαφρώς τροποποιημένη καλύτερη έκδοση του παραπάνω προγράμματος.

  import time while True: localtime = time.localtime() result = time.strftime("%I:%M:%S %p", localtime) print(result, end="", flush=True) print("", end="", flush=True) time.sleep(1) 

Για να μάθετε περισσότερα, επισκεφτείτε το ψηφιακό ρολόι στο κέλυφος Python.

Πολυνηματικά σε Python

Πριν μιλήσουμε για sleep()προγράμματα πολλαπλών νημάτων, ας μιλήσουμε για διαδικασίες και θέματα.

Ένα πρόγραμμα υπολογιστή είναι μια συλλογή οδηγιών. Μια διαδικασία είναι η εκτέλεση αυτών των οδηγιών.

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

Παράδειγμα 3: Python multithreading

Όλα τα παραπάνω προγράμματα σε αυτό το άρθρο είναι προγράμματα με ένα νήμα. Ακολουθεί ένα παράδειγμα ενός προγράμματος πολλαπλών νημάτων Python.

  import threading def print_hello_three_times(): for i in range(3): print("Hello") def print_hi_three_times(): for i in range(3): print("Hi") t1 = threading.Thread(target=print_hello_three_times) t2 = threading.Thread(target=print_hi_three_times) t1.start() t2.start() 

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

 Γεια σας Γεια Γεια Γεια σας 

Το παραπάνω πρόγραμμα έχει δύο νήματα t1 και t2. Αυτά τα θέματα που τρέχουν με τη χρήση t1.start()και t2.start()τις δηλώσεις.

Σημειώστε ότι, t1 και t2 τρέχουν ταυτόχρονα και ενδέχεται να έχετε διαφορετική έξοδο.

Επισκεφτείτε αυτήν τη σελίδα για να μάθετε περισσότερα σχετικά με το Multithreading στο Python.

time.sleep () σε προγράμματα πολλαπλών νημάτων

Η sleep()συνάρτηση αναστέλλει την εκτέλεση του τρέχοντος νήματος για δεδομένο αριθμό δευτερολέπτων.

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

Παράδειγμα 4: αναστολή λειτουργίας () σε πρόγραμμα πολλαπλών νημάτων

 import threading import time def print_hello(): for i in range(4): time.sleep(0.5) print("Hello") def print_hi(): for i in range(4): time.sleep(0.7) print("Hi") t1 = threading.Thread(target=print_hello) t2 = threading.Thread(target=print_hi) t1.start() t2.start()

Το παραπάνω πρόγραμμα έχει δύο θέματα. Έχουμε χρησιμοποιήσει time.sleep(0.5)και time.sleep(0.75)να αναστείλουμε την εκτέλεση αυτών των δύο νημάτων για 0,5 δευτερόλεπτα και 0,7 δευτερόλεπτα αντίστοιχα.

Συνιστώμενη ανάγνωση: Python time.sleep () κοιμάται νήμα

ενδιαφέροντα άρθρα...