I am trying to run multiple ExecutorService 1000 times where in every step it removes the first element of first list and adds it to the beginning of the second list. And in the end we just stop the ExecutorService and print the first 20 elements of the second list. But I am a bit confused and not really familiar with ExecutorService.

public class ExecutorService {

public static final int count = 2;
public static final int turns = 1000;

public static void main(String[] args) {

List<Integer> list1 = new ArrayList<>();
for(int i = 1; i < (2 * turns); i++) {
list1.add(i);
}

List<Future<Integer>> list2 = new ArrayList<>();

var ex = Executors.newFixedThreadPool(count);

for (int i = 0; i < turns ; i++) {
// ex.submit(() ->

// );
}

ex.shutdown();

}
}