This shows you the differences between two versions of the page.
Both sides previous revision Previous revision | Next revision Both sides next revision | ||
java:thread_signalling [2015/04/19 15:04] gthanos [Συγχρονισμός μέσω διαμοιραζόμενων αντικειμένων και διαρκούς επανάληψης] |
java:thread_signalling [2015/04/19 15:08] gthanos [Συγχρονισμός Νημάτων] |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Συγχρονισμός Νημάτων ====== | ====== Συγχρονισμός Νημάτων ====== | ||
- | Ο συγχρονισμός νημάτων έχει σαν στόχο να επιτρέπει σε διαφορετικά νήματα να διαβάζουν ή να γράφουν με ασφάλεια σε διαμοιραζόμενες μεταβλητές χωρίς να προκύπτουν ασάφειες ως προς τις τιμές των μεταβλητών αυτών λόγω ταυτόχρονης μεταβολής τους. Ας υποθέσουμε ότι έχουμε δύο νήματα Α, Β και το νήμα Α θέλει να ειδοποιήσει το νήμα Β μόλις ολοκληρώσει την επεξεργασία των δεδομένων του, ώστε εκείνο να ξεκινήσει την επεξεργασία των δεδομένων. | + | Ο συγχρονισμός νημάτων έχει σαν στόχο να επιτρέπει σε διαφορετικά νήματα να διαβάζουν ή να γράφουν με ασφάλεια σε διαμοιραζόμενες μεταβλητές χωρίς να προκύπτουν ασάφειες ως προς τις τιμές των μεταβλητών αυτών λόγω ταυτόχρονης μεταβολής τους. Ο προσεκτικός αναγνώστης θα παρατηρήσει ότι το παραπάνω μπορούμε να το επιτύχουμε και με την χρήση συγχρονισμένων μπλοκ ή συγχρονισμένων μεθόδων. Το παραπάνω είναι σωστό με την εξής όμως διαφορά. |
+ | |||
+ | Ας υποθέσουμε ότι έχουμε δύο νήματα Α, Β και το νήμα Α θέλει να ειδοποιήσει το νήμα Β μόλις ολοκληρώσει την επεξεργασία των δεδομένων του, ώστε εκείνο να ξεκινήσει την επεξεργασία των δεδομένων που δημιουργήθηκαν. Δεν μας αρκεί δηλαδή τα νήματα Α, Β να εκτελούνται παράλληλα, αλλά θα θέλαμε το Β να ξεκινήσει την επεξεργασία μόλις το Α ολοκληρώσει. | ||
===== Συγχρονισμός μέσω διαμοιραζόμενων αντικειμένων και διαρκούς επανάληψης ===== | ===== Συγχρονισμός μέσω διαμοιραζόμενων αντικειμένων και διαρκούς επανάληψης ===== |