I am new to Java multithreading so, my question may be unreasonable. Please help me understand how it works otherwise.
ExecutorService executor = Executors.newCachedThreadPool();
List<Future<Boolean>> futures = new ArrayList<>();
for (int i = 0; i < emailAddressList.size(); i++) {
futures.add(executor.submit(new Verify(emailAddressList.get(i))));
}
executor.shutdown();
while(!executor.awaitTermination(3, TimeUnit.SECONDS));
for (int i = 0; i < emailAddressList.size(); i++) {
bufferedWriter.write(emailAddressList.get(i) + "|" + futures.get(i).get());
bufferedWriter.newLine();
}
bufferedWriter.close();
In the awaitTermination loop, I have set the TimeOut to 3 seconds. What I am trying to achieve here, on this timeout, I want to terminate all the Threads which have been live for minimum 3 seconds. But how do I identify that?