кстати, сейчас я вижу, что после достижения указанного к-ва успехов сразу завершаются успешно остальные потоки, хоть они еще и в процессе работы.
может не стоит завершать остальные потоки (а просто не запускать новые), дать им выполнится ко конца.. даже если уже и достигло к-во успехов , указанному числу.
было для теста запущено в 2 потока и 2 успешных выполнений.
краткая суть: сколько мы потоков бы не указали, первая их половина будет получать новые номера с сервиса и после использования для реги 1го акка, помещать эти номера в глобальную пер., вторая половина потоков будет сканировать эту глобальную переменную на наличие номеров, чтобы повторно принять смс для реги еще 1го акка. так вот по логу видно, как только 2 раза получили успешное выполнение, так 3 поток завершился. ДА, по логике так и должно быть, но это не сильно удобно в случае с БАС и его пользователями. так не кажется )? Тут удобнее может будет не запускать новые потоки, если еще не известно, текущие потоки были завершены удачно или нет. Если неудача, то тут же запускать новые потоки, а если удача , то их уже и не нужна запускать.
т.е. в этот неопределенный момент, когда еще никто не знает, текущие потоки завершатся с ошибкой или нет, новые не запускать.
а то вот в данном моем примере, запустилось 2 потока.
1 получает номер из сервиса и регает акка. Второй запущен , но сканирует глоб. пер. на наличие номера, который будет туда записан в конце работы первого потока.
и вот 1ый поток успешно завершен, второй поток подхватывает номер его и регает на его еще 1н акк.
и в тоже время запускается новый поток (первый), который опять идет на сервис получаем номер и т.д.
но как только поток 2 завершится с успехов, поток 1 тут же прервется с успехом. Это печально)) да-да это все можно решать самому, делать кучу доп. проверок, которые еще и придумать надо)
например, вести глобальный счетчик успешных выполнений (что тоже не просто в больших скриптах, но куда проще, чем вести счетчик неудачных(ведь выходов исключений может быть много)) но допустим, нашли в себе сил вести счетчик успехов) дальше перед каждым выполнением проверять cnt_success + к-во активных потоков (счетчик которых тоже придется вести) == к-ву указанных успехов ? да: ставить поток на паузу ничего не выполняя дальше, через интервалы снова считывать глоб.пер. и так цикле. пока ответ будет НЕТ:
и вот если нет, тогда разрешать потоку работать дальше..
так что да, не помешает иметь методы, получать к-во работающих потоков (эта инфа уже есть, ее только достать надо), к-во успехов выполненных и неудач..

хотелок все больше , а админ один ) зато нет бюрократии.