Junior — Middle
Με ποιους τρόπους μπορεί να υλοποιηθεί η δημιουργία ροών δεδομένων στη Java και ποιες είναι οι διαφορές τους;
sobes.tech AI
Απάντηση από AI
Στην Java, η δημιουργία ροών δεδομένων (streams) μπορεί να υλοποιηθεί με διάφορους τρόπους:
-
Κληρονομικότητα από την κλάση Thread
- Δημιουργείτε μια κλάση που επεκτείνει το
Threadκαι υπερκαλύπτει τη μέθοδοrun(). - Ξεκινάτε το ρεύμα καλώντας
start().
- Δημιουργείτε μια κλάση που επεκτείνει το
-
Εφαρμογή της διεπαφής Runnable
- Δημιουργείτε μια κλάση που υλοποιεί το
Runnableμε τη μέθοδοrun(). - Μεταβιβάζετε το αντικείμενο στον κατασκευαστή του
Threadκαι το ξεκινάτε.
- Δημιουργείτε μια κλάση που υλοποιεί το
-
Χρήση του ExecutorService
- Επιτρέπει τη διαχείριση μιας ομάδας νημάτων.
- Είναι χρήσιμο για κλιμακούμενες εφαρμογές.
-
Χρήση του Callable και Future
- Επιτρέπει την απόκτηση αποτελέσματος από το ρεύμα.
Διαφορές:
- Η κληρονομικότητα από το Thread περιορίζει την κληρονομικότητα, καθώς η Java δεν υποστηρίζει πολλαπλή κληρονομικότητα.
- Το Runnable είναι πιο ευέλικτο, επιτρέπει τη χρήση σύνθεσης.
- Το ExecutorService απλοποιεί τη διαχείριση των νημάτων και τον κύκλο ζωής τους.
Παράδειγμα με Runnable:
class MyRunnable implements Runnable {
public void run() {
System.out.println("Το νήμα ξεκίνησε");
}
}
public class Main {
public static void main(String[] args) {
Thread thread = new Thread(new MyRunnable());
thread.start();
}
}