Как организовать паралельную обработку файла

marazmatik

Client
Регистрация
24.01.2013
Сообщения
89
Благодарностей
8
Баллы
8
Есть файл например со списком аккаунтов.
Я включаю 100 потоков для его обратки.
Как мне сделать что бы потоки и данные не пересекались?
Например в первом потоке обрабатывается первая строчка, во втором вторая, и т.д.
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 880
Баллы
113
Тоже не отказался бы от норм. решения. А пока делаю так - каждый поток берет первую строку из файла, затем стирает ее...соответственно след. поток возьмет уже новую строку (так же первую)..потом стираем и т.д. Вообще шанс нескольким потокам взять одно и то же, естественно есть, у меня максимум 5 потоков, пока не пересеклись :rolleyes:
Сам часто использую данный вариант. Данные в потоках при таком использовании строк не пересекутся никак. Единственная добавка - если нужно использовать строки по кругу, можно взятую строку дописывать в конец файла, таким образом данные не будут теряться и будут использоваться по кругу.
 

Hungry Bulldozer

Moderator
Регистрация
12.01.2011
Сообщения
3 441
Благодарностей
831
Баллы
113
0. Иметь переменную вроде ifLineTaken, по умолчанию false.
1. Брать строку из списка/таблицы с удалением.
2. ifLineTaken становится true
3. В bad end и good end проверять '{-Variable.ifLineTaken-}'=='true'
4. Если да, то дописывать обратно
 

marazmatik

Client
Регистрация
24.01.2013
Сообщения
89
Благодарностей
8
Баллы
8
А каких нибудь глобальных переменных нету таблицы и id строки таблицы? С областью видимости в пределах проекта всего, а не потоков.
 

Hungry Bulldozer

Moderator
Регистрация
12.01.2011
Сообщения
3 441
Благодарностей
831
Баллы
113
А каких нибудь глобальных переменных нету таблицы и id строки таблицы? С областью видимости в пределах проекта всего, а не потоков.
Нет. Если только заводить самостоятельно
 

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