у меня 2 пула потоков
ioThreads = (ThreadPoolExecutor)Executors.newCachedThreadPool();
cpuThreads = (ThreadPoolExecutor)Executors.newFixedThreadPool(numCpus);
У меня есть простой веб-сканер, который я хочу создать iothread, передать ему URL-адрес, затем он извлечет URL-адрес и передаст содержимое в cpuThread для обработки, а ioThread получит другой URL-адрес и т. Д. ..
В какой-то момент поток ввода-вывода не будет иметь никаких новых страниц для сканирования, и я хочу обновить свою базу данных, что этот сеанс завершен. Как я могу лучше всего определить, когда все потоки завершены, и программа может быть завершена?