По поводу многопотока и таблиц

bhairava7

Client
Регистрация
18.08.2015
Сообщения
154
Благодарностей
15
Баллы
18
Подскажите, пожалуйста, многопоток корректно будет работать при следующих условиях:

Файл file.txt привязан к таблице, отмечено "загружать из файла" и "сохранять изменения таблицы в файл".
В экшене "операция над таблицей" беру первую строку и раскидываю по переменным, но без удаления строки, так как сначала в шаблоне надо обработать данные, и почти в самом конце шаблона записать некоторые изменённые переменные из взятой строки в конец файла, а после удалить первую строку.
В 1-м потоке всё работает верно, но не могу протестировать пока в многопотоке, так как версия постера lite.

Не будет ли возникать конфликт при запуске в многопотоке с такой реализацией?
 

bhairava7

Client
Регистрация
18.08.2015
Сообщения
154
Благодарностей
15
Баллы
18
Вопрос всё еще актуален)
 

nole

Client
Регистрация
19.11.2010
Сообщения
368
Благодарностей
217
Баллы
43
будет
 

bhairava7

Client
Регистрация
18.08.2015
Сообщения
154
Благодарностей
15
Баллы
18
да, все-таки будет, так как допустим первый поток взял 1-ю строку из файла, а он может выполняться и минуту, и так как строка удаляется почти в конце шаблона, то второй инстанс если запустится раньше выполнения первого, то возьмёт ту же строку. И как вот тут быть уже весь мозг сломал, но так и не понял до конца) Есть идея завести глобальную переменную счётчика, и строки из таблицы брать по номеру строки, который и будет лежать в глобальной переменной, еще подсчитывать количество строк в файле, чтобы выходить из цикла взятия строк при достижении этого количества, но тогда не понятно, если в постере укажу сколько делать -1, т.е. безконечно, что произойдёт в данном случае со всеми потоками, они все остановятся и шаблон прекратит выполняться? Мне надо по идее сделать так, чтобы он крутился безконечно, не запуская его каждый раз заново по выполнению цикла.
 

bhairava7

Client
Регистрация
18.08.2015
Сообщения
154
Благодарностей
15
Баллы
18
Всё, разобрался вроде) Надо было просто удалять строку при взятии, и в конце шаблона после проверки загрузки страницы добавлять в конец файла. Что-то меня вчера потянуло в какое-то выдумывание велосипеда)
 

nole

Client
Регистрация
19.11.2010
Сообщения
368
Благодарностей
217
Баллы
43
Всё, разобрался вроде) Надо было просто удалять строку при взятии, и в конце шаблона после проверки загрузки страницы добавлять в конец файла. Что-то меня вчера потянуло в какое-то выдумывание велосипеда)
вот это правильное решение, и еще при этих действиях лочить файл и проблем в многопотоке не будет, а то при запуске сразу большого количества потоков они будут успевать брать одну и ту же строку до ее удаления
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
вот это правильное решение, и еще при этих действиях лочить файл и проблем в многопотоке не будет, а то при запуске сразу большого количества потоков они будут успевать брать одну и ту же строку до ее удаления
Не пугайте словом "лочить". Если работа стандартными экшенами, не через код. все лочится само собой)
 
  • Спасибо
Реакции: Teko

yreha

Client
Регистрация
19.11.2015
Сообщения
125
Благодарностей
3
Баллы
18
У меня проблема сделал счетчик через глобальную переменную то работает 0123 а потом 0000 или 010101 подскажите правильный вариант без использования списка организации потоков перепробовал много выложенных решений результат тот же.
 

rostonix

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

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