Как изменяются списки при многопотоке?

arhip1985

Client
Регистрация
31.10.2011
Сообщения
2 994
Благодарностей
787
Баллы
113
Начало - Первый экшен - добавить строку в список №1
от него - Второй экшен - добавить строку в список №2
от него - Третий экшен - сохранить список №1 в файл 1.тхт
от него - Четвёртый экшен - сохранить список №2 в файл 2.тхт
от него - Пятый экшен - удалить все элементы списка №1
от него - Шестой экшен - удалить все элементы списка №2
конец

не будет ли перемешиваться это всё при многопотоке? (4.3.6.0)
 

rostonix

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

arhip1985

Client
Регистрация
31.10.2011
Сообщения
2 994
Благодарностей
787
Баллы
113
а порядок выполнения? - если третий поток выполнился раньше второго (вдруг, бывает такое), то и третий по счёту результат будет на втором месте
суть простого шаблона - берём урл из файла, переходим по ссылке, парсим 4 параметра, сохраняем в 4 разных списка, дописываем содержимое списков в файл, удаляем содержимое списков, конец шаблона. и важен порядок записи - чтобы был соответствовал порядку урл-ов.
 

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
791
Баллы
113
у вас в шаблоне есть один список входящий, один выходящий, привязаный к файлу и четыре внутренних - не привязаных
все непривязанные списки работают в рамках каждого запущенного инстанса независимо.
формат исходящего списка должен быть соответствующим
урл, данные1, данные2, данные3, данные4
 

arhip1985

Client
Регистрация
31.10.2011
Сообщения
2 994
Благодарностей
787
Баллы
113
выходящих - 4 файла - они не привязаны к списку., но это по сути не имеет значение.. в том то и дело, что списки работают независимо, и если на каком то урле задержалась загрузка страницы, то следующий урл в другом потоке может загрузится раньше, и в итоге поток завершится быстрее, и запишется быстрее, насколько я понимаю.. а важен именно порядок записи, чтобы был такой же как порядок взятия урков) независимо от порядка выполнения потоков
 

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
791
Баллы
113
чтобы сохранить порядок и оставить многопоток вы должны ввести такой параметр как индекс
0, 1, 2, 3, ...n, n+1, ..., N
весь список урлов должен иметь индекс - это обязательно
Исходящий список должен быть такой же длины как урлы или больше.
Шаблон берет урл, считывает индекс и по этому индексу записыват в исходящий файл.
В итоге каждый поток сохранит свои значения в определенное место
Если какой-то процесс не выполнится или будет иметь неуникальный индекс, ваш список в первом случае будет дырявым, во втором неправильным
 
  • Спасибо
Реакции: arhip1985

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