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

  • Автор темы Автор темы marazmatik
  • Дата начала Дата начала

marazmatik

Client
Регистрация
24.01.2013
Сообщения
90
Реакции
9
Баллы
8
Есть файл например со списком аккаунтов.
Я включаю 100 потоков для его обратки.
Как мне сделать что бы потоки и данные не пересекались?
Например в первом потоке обрабатывается первая строчка, во втором вторая, и т.д.
 
Тоже не отказался бы от норм. решения. А пока делаю так - каждый поток берет первую строку из файла, затем стирает ее...соответственно след. поток возьмет уже новую строку (так же первую)..потом стираем и т.д. Вообще шанс нескольким потокам взять одно и то же, естественно есть, у меня максимум 5 потоков, пока не пересеклись :rolleyes:

Сам часто использую данный вариант. Данные в потоках при таком использовании строк не пересекутся никак. Единственная добавка - если нужно использовать строки по кругу, можно взятую строку дописывать в конец файла, таким образом данные не будут теряться и будут использоваться по кругу.
 
0. Иметь переменную вроде ifLineTaken, по умолчанию false.
1. Брать строку из списка/таблицы с удалением.
2. ifLineTaken становится true
3. В bad end и good end проверять '{-Variable.ifLineTaken-}'=='true'
4. Если да, то дописывать обратно
 
А каких нибудь глобальных переменных нету таблицы и id строки таблицы? С областью видимости в пределах проекта всего, а не потоков.
 
А каких нибудь глобальных переменных нету таблицы и id строки таблицы? С областью видимости в пределах проекта всего, а не потоков.

Нет. Если только заводить самостоятельно
 

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