Junior — Middle
Τι συμβαίνει με τα νήματα κατά τη χρήση της λειτουργίας sync και ποιο νήμα μπλοκάρεται στη διαδικασία;
sobes.tech AI
Απάντηση από AI
Η λειτουργία sync στο πλαίσιο του πολυνηματισμού (π.χ., στο GCD στο iOS) εκτελεί την εργασία συγχρονικά, δηλαδή το νήμα που την καλεί μπλοκάρεται μέχρι να ολοκληρωθεί η εργασία. Αν καλέσετε το sync από το κύριο νήμα σε μια ουρά που επίσης εκτελείται στο κύριο νήμα, αυτό θα οδηγήσει σε αδιέξοδο, καθώς το κύριο νήμα θα περιμένει την ολοκλήρωση της εργασίας, η οποία δεν μπορεί να ξεκινήσει όσο το κύριο νήμα είναι απασχολημένο.
Έτσι, κατά τη χρήση του sync, το καλούν νήμα μπλοκάρεται και η εκτέλεση του κώδικα διακόπτεται μέχρι την ολοκλήρωση της εργασίας.