извините за длинное редактирование,
Я пытаюсь загрузить 100 тыс. URL, и я начал скачивать, используя службу executor, как показано ниже,
ExecutorService executorService = Executors.newFixedThreadPool(100);
for (int i = 0; i < list.size(); i++) {
try {
Callable callable = new Callable() {
public List<String> call() throws Exception {
//http connection
}
};
Future future = executorService.submit(callable);
, но вышеуказанный метод загружает данныетолько один URL за раз ..
и поэтому я попытался создать потоки демона (как показано ниже), и этот метод создал несколько подключений загрузки (как и ожидалось) ..
for(int i=0; i<10; i++) {
Thread t = new Thread("loadtest " + i);
t.setDaemon(true);
t.start();
}
while(true) {
boolean flag = true;
Set<Thread> threads = Thread.getAllStackTraces().keySet();
for(Thread t : threads) {
if(t.isDaemon() && t.getName().startsWith("loadtest")) {
flag = false;
break;
}
}
if(flag)
break;
Thread.sleep(5000);
}
Можетэтот же метод будет использоваться для нагрузочного тестирования на серверах?
Любые другие предложения о том, как можно выполнить нагрузочное тестирование, также окажут большую помощь.
Заранее спасибо!