Διαχείριση διεργασιών: Χρονισμός και συγχρονισμός

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

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

για τέχνασμα
συνεχώς [Πέταγμα]
      Εκτελεί συνεχώς το Πέταγμα.
Vivaldi                          Παίζει τη μουσική MIDI ενώ εκτελείται η κίνηση.
ακύρωση [Πέταγμα]      Διακόπτεται η κίνηση.
τέλος

για Πέταγμα
ΘέσεΣχήμα "πεταλούδα1 περίμενε 1 ΘέσεΣχήμα "πεταλούδα2 περίμενε 1
τέλος

Το Πέταγμα εναλλάσσει τα σχήματα της χελώνας. Η οδηγία συνεχώς (στη διαδικασία τέχνασμα) εκτελεί συνεχώς το Πέταγμα, έτσι ώστε να συνεχιστεί η εναλλαγή σχημάτων. Η οδηγία Vivaldi παίζει τη μουσική. Έπειτα, το MicroWorlds πηγαίνει στην επόμενη οδηγία για την ακύρωση της κίνησης. Βεβαιωθείτε πως η οδηγία που έχει δοθεί ως είσοδος στην ακύρωση είναι ίδια με αυτή που έχει δοθεί ως είσοδος στο συνεχώς.

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

χ1, ενεργό vivaldi ΜηΕνεργό

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

Πρώτα, δημιουργήστε μια νέα χελώνα. Ονομάστε τη Μέλισσα και δώστε της την οδηγία φτερούγισμα. Επιλέξτε τη ρύθμιση Πολλές φορές. Τώρα ορίστε τις διαδικασίες φτερούγισμα και Χορό:

για φτερούγισμα
ΘέσεΣχήμα "μέλισσα1 περίμενε 1
ΘέσεΣχήμα "μέλισσα2 περίμενε 1
τέλος

για Χορό
ενεργό
εκκίνηση [Chopin]
συνεχώς [κύκλο]
Περίμενε'Ωσπου [ολοκληρώθηκε? [Chopin]]
ΜηΕνεργό
ακύρωση [κύκλο]
τέλος

για κύκλο
μπροστά 5 δεξιά 5
τέλος

Για να το δείτε στην πράξη, εισάγετε πρώτα ένα αρχείο MIDI με το όνομα Chopin. Έπειτα, πληκτρολογήστε στο Κέντρο εντολών:

Μέλισσα, Χορό

Δείτε προσεκτικά με ποιο τρόπο η διαδικασία Χορό εκτελεί τις οδηγίες της:

Η διαδικασία Χορό ξεκινά.
Η εντολή ενεργό ξεκινά τη διεργασία της χελώνας-μέλισσα η οποία θα αρχίσει να κινεί τα φτερά της.
Η οδηγία εκκίνηση [Chopin] παίζει τη μουσική Chopin.
Η οδηγία συνεχώς [κύκλο] εκτελεί τη διαδικασία κύκλο επαναληπτικά έτσι ώστε η μέλισσα να πετά σε κύκλο.
Η οδηγία Περίμενε'Ωσπου [ολοκληρώθηκε? [Chopin]] κάνει τη Logo να περιμένει μέχρι να ολοκληρωθεί η μουσική Chopin, πριν μεταβεί στην επόμενη οδηγία.
Η εντολή ΜηΕνεργό διακόπτει τη διεργασία της χελώνας-μέλισσα.
Η οδηγία ακύρωση [κύκλο] ακυρώνει τη διαδικασία κύκλο. Η διαδικασία Χορό ολοκληρώνεται.

Δώστε την οδηγία Μέλισσα, Χορό σε ένα κουμπί, κάντε κλικ στο κουμπί και ρίξτε μια ματιά στο δέντρο Διεργασιών (οι αριθμοί θα είναι διαφορετικοί):

Σημείωση: Μελισσοχορός είναι το όνομα της σελίδας στην οποία βρίσκεται το κουμπί.

Υπάρχουν δύο οικογένειες διεργασιών: το Κουμπί1 και η χελώνα-μέλισσα. Συνολικά, έχουν ξεκινήσει τέσσερεις διεργασίες.

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

κουμπί1 στη διαδικασία μελισσοχορός ναι
#33 ξεκινά -- εκκίνηση [ΜίλαΠρος "Μέλισσα Χορό] (κουμπί1 στη διαδικασία μελισσοχορός)
Μέλισσα στη διαδικασία μελισσοχορός ναι
#34 ξεκινά -- εκκίνηση [φτερούγισμα] (Μέλισσα στη διαδικασία μελισσοχορός)
#35 ξεκινά -- εκκίνηση [Chopin] (κουμπί1 στη διαδικασία μελισσοχορός)
#36 ξεκινά -- συνεχώς [κύκλο] (κουμπί1 στη διαδικασία μελισσοχορός)
#34 σταματά
Μέλισσα στη διαδικασία μελισσοχορός όχι
#35 σταματά
#36 σταματά
#33 σταματά
κουμπί1 στη διαδικασία μελισσοχορός όχι

Παρατηρήστε πως όταν σταματά η μουσική Chopin (#35), η μέλισσα σταματά να κινεί τα φτερά της (#34), η διαδικασία κύκλο σταματά (#36) και η διαδικασία Χορό ολοκληρώνεται (#33).

Επιλέξτε Αναίρεση παρακολούθησης όλων από το μενού Επεξεργασία, προκειμένου να σταματήσετε τη λειτουργία Παρακολούθηση.