Создать счетчик в многопотоке.

paletizator

Новичок
Регистрация
05.07.2017
Сообщения
14
Благодарностей
9
Баллы
3
Доброго времени суток. Никогда не работал в многопоточном режиме в zennoposter, всегда обходился 1. Сейчас же проект требует использования нескольких сотен потоков.

Вопрос заключается в следующем: проект-брутфорс определенного сервиса, после выполнения потока нужно вывести результат работы в виде Пройдено комбинаций/Хороших аккаунтов/плохих аккаунтов/заблокировано и т.д. Сейчас это делается так (ДА,Я ПОНИМАЮ ЧТО СКОРЕЕ ВСЕГО ТАК ДЕЛАТЬ НЕЛЬЗЯ, ИМЕННО ПОЭТОМУ Я ТУТ): Есть текстовый документ который содержит в себе нужные нам строки "Хороших аккаунтов: 0"... берется строка из списка по номеру (с удалением) +1 к цифре и кладется на то же самое место, получается в документе лежит уже "Хороших аккаунтов: 1" и следующий поток знает к какому числу делать +1.

Как реализовать правильный вывод информации в текстовый документ.
При 5-10 потоках эта схема работает нормально, но при 300 происходит конфликт обращения к нужной строке т.к ее там может не быть (другой поток в это время ее "дернул")
 

all3xpress

Client
Регистрация
06.03.2019
Сообщения
159
Благодарностей
25
Баллы
18
юзай базу
 

THE CaHeK

Client
Регистрация
29.01.2016
Сообщения
295
Благодарностей
115
Баллы
43
Выше вам ответили, или воспользуйтесь глобальными переменными. Только перечитайте форум, как их правильно нужно использовать. Ибо тоже могут быть проблемы которые вы описали в своем посте.
 

selectel56

Client
Регистрация
11.12.2016
Сообщения
100
Благодарностей
53
Баллы
28
Очень жаль, что все обходится в зеннопостере костылями типа базы, текстовых файлов, глобальных переменных, брать строки с удалением и тд... Давно пора сделать контроль над потоками, чтобы при создании потока к нему присваивался ID и показывал статус true или false т.е. поток активен или он вылетел в шабе с ошибкой и уже давно сдох, вот когда нет такого контроля - всегда будет нестабильная работа. Куда написать предложение это на форуме, чтобы разработчики все же задумались? Сами подумайте, если бы такое было - было бы намного проще! А в идеале бы еще возможность перезапускать поток, который сдох, было бы вообще шоколадно.
 

THE CaHeK

Client
Регистрация
29.01.2016
Сообщения
295
Благодарностей
115
Баллы
43
Очень жаль, что все обходится в зеннопостере костылями типа базы, текстовых файлов, глобальных переменных, брать строки с удалением и тд... Давно пора сделать контроль над потоками, чтобы при создании потока к нему присваивался ID и показывал статус true или false т.е. поток активен или он вылетел в шабе с ошибкой и уже давно сдох, вот когда нет такого контроля - всегда будет нестабильная работа. Куда написать предложение это на форуме, чтобы разработчики все же задумались? Сами подумайте, если бы такое было - было бы намного проще! А в идеале бы еще возможность перезапускать поток, который сдох, было бы вообще шоколадно.
Все что вы описали можно реализовать, если разработчики будут подстраиваться под каждого клиента, к его прихотям и так дальше то зенка превратиться в непонятный говно-софт. Изучайте форум и сможете все реализовать
 

selectel56

Client
Регистрация
11.12.2016
Сообщения
100
Благодарностей
53
Баллы
28
Все что вы описали можно реализовать, если разработчики будут подстраиваться под каждого клиента, к его прихотям и так дальше то зенка превратиться в непонятный говно-софт. Изучайте форум и сможете все реализовать
Хорошо, тогда скажите как же можно узнать активность потока? Допустим поток взял аккаунт, но потом по неким причинам этот поток "вылетел" и перестал быть активным, вы инитиализируете другой поток и смотрите по глобалке или по базе или по текстовому файлу, что данный аккаунт уже используется потоком, но вы никак не сможете узнать этот поток активен или нет, следовательно N аккаунтов будут так и лежать без дела, потому что мы тупо не будем знать они используются в настоящее время или нет. Можно сделать обнуление флага для аккаунта, что он более не используется потоком, но это может произойти только если шаблон отработает без ошибок, но бывают моменты когда идет все не по плану. Хоть как старайтесь, но вы не узнаете активен поток или нет, они могут вылетать и ниче тут не сделаешь как не крути. И как же мое предложение превратит ZP в говно-софт? Тогда уж можно было вообще ничего там не делать, а все кодить на C# как в блокноте и смотреть в окошко браузера и утешать себя тем, что это лучшее, что может быть :D
 
Последнее редактирование:

zortexx

Client
Регистрация
19.09.2011
Сообщения
2 520
Благодарностей
1 226
Баллы
113
Хорошо, тогда скажите как же можно узнать активность потока? Допустим поток взял аккаунт, но потом по неким причинам этот поток "вылетел" и перестал быть активным, вы инитиализируете другой поток и смотрите по глобалке или по базе или по текстовому файлу, что данный аккаунт уже используется потоком, но вы никак не сможете узнать этот поток активен или нет, следовательно N аккаунтов будут так и лежать без дела, потому что мы тупо не будем знать они используются в настоящее время или нет. Можно сделать обнуление флага для аккаунта, что он более не используется потоком, но это может произойти только если шаблон отработает без ошибок, но бывают моменты когда идет все не по плану. Хоть как старайтесь, но вы не узнаете активен поток или нет, они могут вылетать и ниче тут не сделаешь как не крути. И как же мое предложение превратит ZP в говно-софт? Тогда уж можно было вообще ничего там не делать, а все кодить на C# как в блокноте и смотреть в окошко браузера и утешать себя тем, что это лучшее, что может быть :D
Для этого среди экшенов в разделе логика есть Good End и Bad End, позволяющие обрабатывать соответствующие события.
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)