Uruchamianie zadania równolegle z innym zadaniem

Mam następująceFoo klasa, która używaFooProcessor klasa. Więc co chcę zrobić, to podczas uruchamiania metody przetwarzania instancji cp1 równolegle chcę uruchomićcp2.process().

public class Foo {

    public static void main(String [] args){

        FooProcessor cp1 = new FooProcessor();
        FooProcessor cp2 = new FooProcessor();

        cp1.process();
        // in parallel process cp2.process();
    }

}

public class FooProcessor {
    public void process(){
        System.out.println("Processing..");
    }
}

Jednak chcę cp1 sekwencyjnie, więc chcę, aby uruchomił się i zakończył, jeśli cp2 się nie zakończy lub nie powiedzie się, to dobrze. Jeśli to się nie uda, chcę dołączyć do wyników. Nie zwraca niczego w tym przykładzie, ale chcę zwrócić wynik.

W tym celu należy użyć TaskExecutor? lub wątek?

Chcę, aby tylko cp2 działał równolegle do cp1. lub jeśli dodam więcej, powiedzmy cp3, chcę, aby działało ono równolegle do cp1.

questionAnswers(5)

yourAnswerToTheQuestion