Διαδρομές
/
Scala
Scala
/
Ασκήσεις
/
Παράλληλη συχνότητα γραμμάτων
Παράλληλη συχνότητα γραμμάτων

Παράλληλη συχνότητα γραμμάτων

Μέτριο

Οδηγίες

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

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

Ειδικές οδηγίες για αυτό το track

Σύμφωνα με αυτή την ορολογία θα πρέπει να γράψεις ένα παράλληλο και ντετερμινιστικό πρόγραμμα και (οπωσδήποτε!) να αφήσεις τη Scala να ασχοληθεί με την πτυχή του ταυτοχρονισμού. Αλλιώς ο κώδικάς σου μπορεί γρήγορα να γίνει ακατάστατος και επιρρεπής σε λάθη, με κάθε λογής άσχημα bugs ταυτοχρονισμού. Ειδικότερα, το πρόγραμμά σου μπορεί να γίνει μη ντετερμινιστικό, που στην πράξη σημαίνει: πολύ (βασικά, ΠΟΛΥ) δύσκολο να κάνεις debug, να το τεστάρεις και να το αναλύσεις.

Παρ' όλα αυτά, μπορεί να είναι καλή ιδέα να γράψεις πρώτα μια σειριακή λύση (και να χρησιμοποιήσεις τη σουίτα δοκιμών για να την επαληθεύσεις). Μόνο τότε θα πρέπει να δοκιμάσεις να την παραλληλοποιήσεις, κρατώντας τα σειριακά και τα παράλληλα τμήματα του κώδικά σου όσο πιο ξεχωριστά γίνεται.

Μια πρώτη επανάληψη θα μπορούσε να χρησιμοποιήσει τις παράλληλες συλλογές της Scala. Μπορεί να διαπιστώσεις ότι αυτό είναι σχεδόν πολύ απλό (ειδικά αν έχεις ακολουθήσει τη συμβουλή μας και έχεις ήδη μια σειριακή λύση).

Για τη δεύτερη επανάληψη, σου προτείνουμε να δοκιμάσεις μια λύση με το scala.concurrent.Future. Μπορείς να συμβουλευτείς αυτό το σεμινάριο και τη συνέχειά του για λίγη βοήθεια. Βεβαιώσου ότι

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

Το scala.concurrent.Future χρησιμοποιείται σε πολλές βιβλιοθήκες και αποτελεί τη συμβουλή του γιατρού για τον παράλληλο και ασύγχρονο προγραμματισμό στη Scala. Έτσι, είναι απαραίτητο για να κατακτήσεις τη γλώσσα και θα πρέπει να γίνει μέρος του οπλοστασίου σου στη Scala.

Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα
Scala Exercism

Έτοιμος να ξεκινήσεις την άσκηση Παράλληλη συχνότητα γραμμάτων;

Γράψου στο Exercism για να μάθεις και να κατακτήσεις Scala με 95 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.

Αναλυτική ματιά στο Παράλληλη συχνότητα γραμμάτων!

Εξερευνούμε τις διαφορές ανάμεσα στον ταυτοχρονισμό και τον παραλληλισμό, εξετάζοντας διαφορετικές προσεγγίσεις που ακολουθούν γλώσσες όπως η JavaScript, η Go, η Elixir και η Rust.