Я создаю программу, которая будет выполнять заданное пользователем количество задач, скажем, 100.
Каждая задача отправляется на сервер, получает ответ, выполняет вызов на другой сервер, а затем использует ответ, чтобы сделать еще один вызов на предыдущий сервер.
Я хочу, чтобы приложение было многопоточным, поэтому, когда пользователь нажимает кнопку, оно запускает, скажем, 10 потоков, и они начинают работать.
Как только задача завершена, поток, завершивший задачу, будет извлекать другую из списка, пока не останется ни одной, и в этом случае потоки будут прерваны, и произойдет что-то, предупреждающее пользователя о завершении задачи.
Раньше, когда я пытался сделать что-то похожее, у меня получался отбой, где я обычно запускал 10 потоков каждые N секунд или около того и молился, чтобы предыдущие к тому времени были закончены.
У меня вопрос: как мне создать несколько потоков, как-то их сохранить и добавить к ним задачи по мере их завершения?
Мне посоветовали добавить в список ссылки на потоки, а затем проверить, какие потоки спят, и заставить их что-то делать, но я не совсем уверен, как это сделать, хотя в основном я не уверен в правильности общего подхода эта проблема.
Спасибо!