Αλλά όπως είναι γνωστό, αλλα και λογικο, δεν είναι σωστό να ανοίγεις ανεξέλεκτα Threads. Γιατι αυτά μεταφράζονται σε Threads που ανοίγονται στο λειτουργικό σύστημα, όπου υπάρχει ένας περιορισμός. Οπότε αποφασίσαμε να οδηγηθούμε σε μια πιο σωστή λύση, που ειναι το να περιορίσουμε το μέγιστο πλήθος Thread, δηλαδή να χρησιμοποιήσουμε ThreadPooling. Κατι που φανταζει δύσκολο και περιπλοκο αλλά στην πραγματικότητα ειναι πανεύκολο! Πολύ απλά πρέπει να υλοποιήσεις ένα Interface που ονομάζεται Callable και το οποιο ειναι κάτι πιο προχωρημένο απο το απλό Runable, καθώς επιστρέφει αποτέλεσμα! Οπότε αν έχεις κάποια διαδικασία που πρόκειται να επιστρέψει αποτέλεσμα μπορείς πολύ εύκολα να υλοποιήσεις την Callable που θα γυρνάει στο τέλος αυτό το αποτέλεσμα!
Κατεβάστε τον κώδικα-παράδειγμα εδώ
ΥΓ: Σύντομα θα γραψω και για άλλο ένα γνωστό, παρομοιο, πρόβλημα που υπάρχει όταν χρησιμοποιείται το java.util.Timer
Δεν υπάρχουν σχόλια:
Δημοσίευση σχολίου