Το Executor framework διαχειρίζεται κουλούρια threads, οπότε υποβάλλετε εργασίες αντί να δημιουργείτε threads χειροκίνητα, και το CompletableFuture συνθέτει ασύγχρονες λειτουργίες δηλωτικά. Μαζί είναι ο σύγχρονος τρόπος για να κάνετε concurrent/async εργασία στη Java — αποφεύγοντας το κόστος και την πολυπλοκότητα της διαχείρισης surrogates threads.
Το πρόβλημα με raw threads
(Task t : tasks) {
(() -> process(t)).start();
}
