vpn с ротацией соединения? Только работа будет в мало потоков.
https://goldproxy.net - НО НЕ РУЧАЮСЬ, ПРОВЕРЬ ИНФОРМАЦИЮ ПО САЙТУ В ИНТЕРНЕТЕ.
Счётчик и потоки цикла
-
Есть однопоточный цикл, который берёт новость из файла и чебурашет её на переменные.
Дальше он создаёт переменную [[SCHETCHIK]] (Счётчик) со значением 1.
Дальше он запускает второй цикл в 10 потоков.
Второй цикл первым делом берёт значение счётчика и кладёт в свою переменную [[NOMER]].
После чего увеличивает [[SCHETCHIK]] на единицу и пошёл дальше отправлять новость на сайты.
Вот чего я боюсь: Что 10 потоков возмут себе единицу в свою переменную [[NOMER]], после чего каждый увеличит счётчик на единицу (итого на 10) и на следующем заходе то же самое произойдёт с числом 11...
Как избежать такой вероятности?
-
@LCFSCS said in Счётчик и потоки цикла:
Есть однопоточный цикл, который берёт новость из файла и чебурашет её на переменные.
Дальше он создаёт переменную [[SCHETCHIK]] (Счётчик) со значением 1.
Дальше он запускает второй цикл в 10 потоков.
Второй цикл первым делом берёт значение счётчика и кладёт в свою переменную [[NOMER]].
После чего увеличивает [[SCHETCHIK]] на единицу и пошёл дальше отправлять новость на сайты.
Вот чего я боюсь: Что 10 потоков возмут себе единицу в свою переменную [[NOMER]], после чего каждый увеличит счётчик на единицу (итого на 10) и на следующем заходе то же самое произойдёт с числом 11...
Как избежать такой вероятности?
Как именно цикл запускает потоки?
-
@LCFSCS said in Счётчик и потоки цикла:
@Fox
Планировал второй цикл сделать функцией и вызвать в несколько потоков.Используйте локальный ресурс или список в глобальной переменной
-
Что-то я ничего не понимаю...
Локальный ресурс - добавлять можно только строки - не получится туда число положить и менять его из каждого потока.
Список в глобальной переменной - это я вообще не понял как: создать глобальную переменную и вложить в её значение список из ресурса?
И что со списком делать? - Создавать в нём строки (1,2,3,4,5... - запятые заменяем переносами и так до значения посчитанного колличесва ячеек ексель-файла - а их будет несколько тысячь)?А с глобальными переменными не получится? Нельзя сделать как-то, чтобы значение её отдавалось единожды, пока не измениться?
Думал сделать задержку на "номер потока" секунд - но всё равно сохраняется вероятнось "схватить дубль"...
Что-то я начитался (пол дня читал - искал похожую ситуацию - но не нашёл) и пришёл к очень негативным предположениям:
Каждый поток (кроме первого) получается "чистым"? - Он "забывает" всё, что было до его "рождения" (загрузку профиля, про все мои 100500 начебурашенных переменных) - может иметь дело только с глобальными переменными и ресурсами?
Так ли это? Если так - то мне профиль нужно грузить в каждом потоке и нужные переменные переделывать в глобальные?
Можно ли пересоздавать глобальные переменные (ибо мы создаём их первым циклом) - конфликтов не будет?И опять к подходу - реализовать "счётчик для циклов" - пол часа делов и добавить как действие и как опцию для циклов с тремя "вариантами" (использовать один раз или многократно, увеличивать после использования) - годами люди парятся с циклами в многопотоке, пляшут с бубном.
Полез запускть функцию многопоточно - а она ко мне пристаёт со своими "Удачными" и "Неудачными". - Что ей указывать - ноль, один или мииилон? Кучу роликов просмотрел и нигде не объясняют что это, как работает и что с ним делать - ограничиваются тем, что "Я это потом объсню" (и не объяснил), "А я люблю ставить девять девяток (десять десяток)"...
Как это вообще работает? Я не знаю сколько будет оборотов цикла в каждом потоке. Как повлияют эти цифры на многопоточное выполнение цикла - дойдёт до установленной цифры и прекратит (не доделав до конца), или выполнит цикл (но так как цифры не достиг) и опять его запустит, или эти цифры "ни на что не влияют"?