Существует много прокси-серверов. Я должен определить эти серверы, которые он может использовать, или не может. Способ отправки: POST
Запросить каждый прокси, используя несколько потоков. и затем я забираю сервер, который отражает код ответа 200
. В любом случае, это не акцент на моем вопросе, я должен очистить эти потоки, потому что я должен обновлять прокси-сервер каждые 30 минут. Потому что среда общественного прокси-сервера очень нестабильна. И я должен запустить эту программу весь день. (Извините за неуклюжий английский)Выход из нитей.
Я использую это:
for (int i=0; i<30; i++){
Runnable r = new CheckProxy(ip[i], port[i]);
new Thread(r).start();
}
}
Существует веб-сайт, который показывает прокси-серверы. Я приношу это и вставляю код выше. CheckProxy
класс отправить отправить запрос и сохранить код ответа. В любом случае В заключение, Как я могу выйти из этих потоков?
Я пробовал это. сделанный переменным static boolean isExit
, и метод public void stopChecking() { isExit = true; }
.
if (!isExit){
for (int i=0; i<30; i++){
Runnable r = new CheckProxy(ip[i], port[i]);
new Thread(r).start();
}
}
else { Thread.interrupted(); }
}
Что я буду делать, просто оставь это. Я хочу закрыть все потоки, которые разрешает проверка. Для этого я вызвал stopChecking(); однако все нити живы. Что мне делать?
Вы, вероятно, нужно сделать ' isExit' быть 'volatile', поскольку он разделяется между потоками. Кроме того, вы должны использовать использование «ExecutorService» вместо того, чтобы разворачивать свои потоки вручную. – Gray
ха? Thread.interrupted ничего не делает, проверяет статус. Вы действительно должны прервать экземпляры. –
@GregGiacovelli Итак, как я могу получить доступ, например? r.interrupted(); или Thread (r) .interrupted? не может ... Я не знаю, как получить доступ к экземпляру ... – Juntae