Обработка списка в многопоточности

sparsa

Новичок
Регистрация
13.08.2014
Сообщения
13
Благодарностей
1
Баллы
3
Задача:
Отработать ID в многопоточности.
Условие:
Есть список ID в файле site.ru/file.txt, который периодически пополняется новыми.
Список выглядит так:
id321312
id432432
id423555
id252343
Вопрос:
Как лучше брать с этого списка строку с необработанными ID в многопоточноти, чтоб уменьшить вероятность того что несколько потоков возьмут одну строку.

СПС
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113
Брать строки с удалением из списка.
 

sparsa

Новичок
Регистрация
13.08.2014
Сообщения
13
Благодарностей
1
Баллы
3
rostonix,спс, но к site.ru/file.txt нет доступа по ftp, удаление обработанных из данного списка не возможно
 

svaminar

Client
Регистрация
21.08.2013
Сообщения
834
Благодарностей
378
Баллы
63
Вести 2 список обработанных ид локально на компе с зено.
Потом по циклу берешь ид из списка 1 если его нет в списке 2 то работаешь (сразу добавив в список 2 )если есть то пропуск.
Но при при такой реализации надо брать случайную строку из списка 1 (если по порядку то все потоки возьмут первий подходящий ид.)
 

Roman*

Client
Регистрация
25.09.2013
Сообщения
1 651
Благодарностей
655
Баллы
113
Я правильно понимаю, что при взятие из списка с удалением строки многопотоком исключен % повторного взятия строки другим потоком?
И второе, как мне поставить счетчик на все потоки, чтобы сравнивать взятое колличество строк и для статистики, слышал что как то глобальные переменные участвуют или я ошибаюсь?.
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113
Я правильно понимаю, что при взятие из списка с удалением строки многопотоком исключен % повторного взятия строки другим потоком?
Да, если список привязан к файлу и стоит галка "сохранять изменения".
я тут http://zennolab.com/discussion/threads/mnogopotok-prostoj-primer.15888/ писал как работать с глобальными в многопотоке
 

Roman*

Client
Регистрация
25.09.2013
Сообщения
1 651
Благодарностей
655
Баллы
113
Да, если список привязан к файлу и стоит галка "сохранять изменения".
я тут http://zennolab.com/discussion/threads/mnogopotok-prostoj-primer.15888/ писал как работать с глобальными в многопотоке
До сих пор так и не понимаю что значит привязать файл?Это делается отдельным экшеном привязать файл такой то?только в этом случае повторов нет? И правильно я понял,глобальная переменная решит вопрос с счетчиком для статы в многопотоке?
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113
До сих пор так и не понимаю что значит привязать файл?Это делается отдельным экшеном привязать файл такой то?только в этом случае повторов нет?
привязка = наличие галки "сохранять изменения в файле" и "загружать из файла".
путь к файлу при этом все равно как устанавливать: через экшен или просто прописать в свойствах списка.

глобальные пермееные обнуляются при перезагрузке программы. я не знаю ваших задач, но я не юзаю глобальные переменные
 

Se0mashines

Client
Регистрация
05.02.2012
Сообщения
209
Благодарностей
52
Баллы
28
К примеру, если в список записываются строки, потом обрабатываются около минуты. Если запустить 2 потока, то данные будут записываться в один файл и мешаться. Как выйти с данной ситуации? Если ли в свойствах списка не выставлять галочку "Сохранять в файл" прокатит так? Не будет путаницы в переменных?
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113
если список не синхронизирован с файлом, то содержимое не будет пересекаться по потокам
 
  • Спасибо
Реакции: Se0mashines

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