Что-то не так в вопросе. Вот код, который я написал, и в моем примере первый поток всегда завершается перед вторым потоком.
import java.util.Arrays;
import java.util.List;
import java.util.Random;
public class Main {
public static void main(String[] args) {
List<Integer> l1 = Arrays.asList(1,2,3,4,5,6,7,8,9,10,11,12,13,14,1,2,3,4,5,6,7,8,9,10,11,12,13,14,1,2,3,4,5,6,7,8,9,10,11,12,13,14,1,2,3,4,5,6,7,8,9,10,11,12,13,14);
List<Integer> l2 = Arrays.asList(21,22,23,24,25,26,27,28,29,30,31,32,33,34,21,22,23,24,25,26,27,28,29,30,31,32,33,34,21,22,23,24,25,26,27,28,29,30,31,32,33,34,21,22,23,24,25,26,27,28,29,30,31,32,33,34);
Random r = new Random();
l1.parallelStream().forEach(e -> {
System.out.println("L1 : " + e);
try {
Thread.sleep(Math.abs(r.nextLong() % 1000));
}
catch(InterruptedException i) {
}
});
l2.parallelStream().forEach(e -> {
System.out.println("L2 : " + e);
try {
Thread.sleep(Math.abs(r.nextLong() % 1000));
}
catch(InterruptedException i) {
}
});
}
}
Я предполагаю, что вы используете клиентскую библиотеку HTTP, которая выполняет действия в фоновом режиме, и поэтому второй поток запускается до завершения первого потока.