Σου προτείνω να μάθεις multi-threading και όχι multi-processing.
Για να μπορέσεις να καταλάβεις καλύτερα θα σου κάνω ένα mini μάθημα.
Τι είναι ο παράλληλος προγραμματισμός?
Μέχρι τώρα γνώριζες πως να φτιάχνεις προγράμματα τα οποία τρέχουν μία εντολή κάθε φορά. Στον παράλληλο προγραμματισμό, χρησιμοποιώντας κάποιες μεθόδους φτιάχνουμε προγράμματα τα οποία τρέχουν εντολές παράλληλα.
Τι είναι μία διαδικασία (Process) στον υπολογιστή?
Είναι μία σειρά εντολών που μπορεί να τρέξει ο επεξεργαστής ενός H/Y. Ένα πρόγραμμα δηλαδή. Κάθε διαδικασία (Process) τρέχει ανεξάρτητα από τις άλλες σε έναν από τους επεξεργαστές του Η/Υ και το λειτουργικό σύστημα είναι αυτό που ελέγχει αυτήν τη διαδικασία (Σε ποιόν επεξεργαστή θα τρέξει κτλ).Μέσα σε μία διαδικασία μπορούν να τρέχουν ένα ή και περισσότερα ξεχωριστά νήματα.
Τι είναι ένα νήμα (Thread)?
Είναι και αυτήν μία σειρά εντολών, όπως δηλαδή μία διαδικασία μόνο που η διαφορά είναι ότι τρέχει μέσα σε μία διαδικασία (που σημαίνει ότι μοιράζεται την ίδια τοπική μνήμη στον υπολογιστή με την διαδικασία στην οποία βρίσκεται).
Τι είναι το multi-processing?
Είναι μία μέθοδος με την οποία μπορούμε να δημιουργήσουμε παράλληλα προγράμματα. Ο τρόπος με τον οποίο δουλεύει είναι ότι πολλά προγράμματα (Processes) τρέχουν ανεξάρτητα και επικοινωνούν μεταξύ τους με κάποιον τρόπο έτσι ώστε να αποδώσουν ένα αποτέλεσμα. Κάθε process όμως έχει τον δικό του τοπικό χώρο στην μνήμη του Η/Υ.
Τι είναι το multi-threading?
Ότι και το multi-processing μόνο που τώρα τρέχει μόνο ένα process και μέσα σε αυτό άλλα 1 ή και περισσότερα νήματα (Threads). Φαντάσου το σαν ένα πρόγραμμα μέσα στο οποίο τρέχουν και άλλα mini προγράμματα τα οποία συνεργάζονται μεταξύ τους για να πετύχουν κάτι.
Το καλό με το multi-threading είναι ότι όλα τα threads (μαζί με το main thread όπως το λέμε το οποίο είναι στην ουσία το process) μοιράζονται την ίδια τοπική μνήμη του υπολογιστή, που σημαίνει ότι εάν έχεις μια μεταβλητή
petros, τότε όλα τα threads μπορούν να την δουν, να την διαβάσουν αλλά και να την γράψουν. Έτσι η επικοινωνία μεταξύ τους είναι πάρα πολύ εύκολη!
Βέβαια και το multi-processing έχει τα δικά του πλεονεκτήματα, όπως δεν υπάρχει όριο στο πόσα processes τρέχουν σε έναν επεξεργαστή, ενώ για τα threads υπάρχει ένα συγκεκριμένο όριο για τα πόσα μπορεί να τρέξει ο επεξεργαστής.
Αυτά ήθελα να σε πω, για να πάρεις μια ιδέα και να ξέρεις καλύτερα τη κάνεις