Я новичок в потоковом режиме, поэтому я хочу понять, что происходит за кулисами, когда вы создаете связку Thread
s в цикле и последствия/лучшие способы сделать это.Создание потоков в цикле
Вот пример:
for (Page page : book) {
Thread t = new Thread(new Runnable() {
public void run() {
//http request to get page and put into concurrent data structure
}
});
t.start();
threads.add(t);
}
//wait for threads
Как вы можете видеть, в моем конкретном случае использования прямо сейчас, я листал объекты, которые я заказываю через HTTP. Я знаю, что здесь не обязательно быть потоками, и вместо этого я мог бы делать асинхронные запросы, но как (с объяснениями), как это можно улучшить.
это именно тот совет, который я искал. большое спасибо! – tau
«Это не будет эффективным, если в вашей системе будет больше страниц, чем ядер». - вы знаете, что потоки, вероятно, будут связаны с сетью и заблокированы большую часть времени? –
да, но я хотел понять, как лучше использовать потоки (как я сказал в своем сообщении, я бы скорее решил эту конкретную проблему с асинхронными запросами, но это заставило меня задуматься о том, как более эффективно управлять потоками в java). – tau