Sobes.tech
Junior — Middle

Μπορείτε να εξηγήσετε την έννοια του ασύγχρονου προγραμματισμού και πώς διαφέρει από την συγχρονική προσέγγιση;

sobes.tech AI

Απάντηση από AI

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

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

Στο Flutter, για την ασύγχρονη προγραμματισμό, χρησιμοποιούνται οι λέξεις-κλειδιά async και await:

Future<String> fetchData() async {
  // προσομοίωση καθυστέρησης
  await Future.delayed(Duration(seconds: 2));
  return 'Δεδομένα φορτώθηκαν';
}

void main() async {
  print('Ξεκινάμε τη φόρτωση');
  String data = await fetchData();
  print(data);
}

Εδώ, το fetchData εκτελείται ασύγχρονα, χωρίς να μπλοκάρει το κύριο νήμα.