Мой код:
String[] torrentFiles = new File("/root/torrents/").list();
if(torrentFiles.length == 0 || torrentFiles == null)
{
System.exit(0);
}
ex = Executors.newFixedThreadPool(3);
for(String torrentFile : torrentFiles)
{
ex.submit(new DownloadTorrent("/root/torrents/" + torrentFile));
}
ex.shutdown();
try
{
ex.awaitTermination(30, TimeUnit.MINUTES);
}
catch(InterruptedException ex1)
{
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex1);
}
Но иногда загрузка торрента занимает неизвестное время и « awaitTermination
» работает не так, как я хочу. Мне нужно немедленно остановить все выполняемые потоки через полчаса, но, как я знаю, « awaitTermination
» просто использует только метод interrupt ()
, который работает только в циклах или в ожидании. Таким образом, в этот момент тайм-аут не работает. Итак, как это сделать?