@wxaaasd каждый поток при запуске будет брать новую строку, если файл будет ресурсом. Нужно смотреть уроки по ресурсам что бы понимать принцип их работы
Как брать разные данные из файла разными потоками ?
-
Всем привет.
У меня такая задача. Нужно брать из файла одну строку и делать с ней определенные действия.
Надо пройти все строки до конца и завершить скрипт.
В одном потоке я просто сую файл в список и попорядку беру строки.Но как делать в многопотоке ?
Все потоки берут одни и теже данные и не понятна как сделать чтобы во всех потоках бралось попорядку данные а не одинаковые, тоесть если 1 поток взял строку, другой уже чтобы следующую взял.
-
@easy ресурсы-список создают табличку со списком в оперативной памяти(находится в быстрой оперативной памяти а не на диске),
периодически синхронизируя свой список со списком в файле.
ресурсы неплохо работают для своих задач.(данные из ram памяти с cpu явно быстрей работают)
примерно так наверно. -
@tet-vivi ОТличный ответ.
А как посоветуешь все же с большими списками работать ?
У меня очень большие файлы.
Вот так как я понял сделать надо ? ТОгда в каждом потоке будут разные данные.

brute_base - файл с данными.
Или как мне вчера советовали , все эти данные вначале скрипта перенести в базу данных, а потом с базой данных работать ?
Пытаюсь брут написать, вот вопрос с работой файлов непонятен, как и что.
Или третий вариант сделать вообще разбивку на много файлов в начале скрипта, а после чего брать маленькие файлики и юзать по порядку, чтобы по 100500 раз не тратить данные на выгрузку файла в оперативку ?
Как правильнее ?
-
@easy база или ресурс на своё усмотрение.
у базы вроде меньше потребления оперативки и дополнительные фишки вроде сортировок и поиску по колонкам(т.е. есть 2 колонки логин и пароль. можно искать по колонке логин, получив в итоге всю строку/данные с этим логином. такого поиска в ресурсах нет)
т.е. для простого хватит ресурсов, для более сложных база. -
ну а базе пофиг на размеры ?
Вот этого момента не понял.Тоесть в каком слушчае логики работы будет есть меньше ресурсов ?
Предположим 3 ляма записей.
Парсить строку из файла как я выше писал ? Парсить строку из ресурса и делать дела.
Или всетаки вначале скрипта выгрузить все 3 ляма записей в базу, а после чего получать оттуда данные.
У меня задача брать просто первую строку проверять логин пароль и брать следующую. Ну и так до конца
-
@easy said in Как брать разные данные из файла разными потоками ?:
ну а базе пофиг на размеры ?
Вот этого момента не понял.пока есть место на диске.
Предположим 3 ляма записей.
лучше использовать базу.
как лучше загонять данные в базу в вашем случае не знаю.
если есть возможность самостоятельно проделать, то я бы загонял данные без бас. вышло бы быстрей.
в бас возможно использовать ноду.js и там поискать чего что бы напрямую загнать данные желательно.
возможно база имеет cli интерфейс и через него можно залить данные файла.
самый медленный варианты это ресурсы и списки через стандартные средства бас. при ваших объемах списки могут просто выводить из работы бас, а ресурсы будут отжирать оперативную памятькроме монго есть другие базы данных. и не так давно вроде вышел модуль для работы с sql базами