Взятие строк рандомно

Mandyson

Client
Регистрация
03.06.2012
Сообщения
410
Благодарностей
84
Баллы
28
Давно интересовал простой вопрос.
Как происходит синхронизация у зенки по удалению строчек в файле, если идет многопоточный режим?
Я все проекты реализую так. 1 - вычисление общего кол-ва строчек 2 - рандом от 0 до общего 3 - в конце удаление строки по номеру
Но возникает резонный вопрос, когда идет многопоток строчки сдвигаются и общее кол-во постоянно уменьшается:rolleyes: не удаляется ли строка, которая еще не задействована, а прошлая сохраняется?
 

lokiys

Moderator
Регистрация
01.02.2012
Сообщения
4 813
Благодарностей
1 188
Баллы
113

Lexicon

Client
Регистрация
27.12.2012
Сообщения
1 775
Благодарностей
901
Баллы
113
Давно интересовал простой вопрос.
Как происходит синхронизация у зенки по удалению строчек в файле, если идет многопоточный режим?
Я все проекты реализую так. 1 - вычисление общего кол-ва строчек 2 - рандом от 0 до общего 3 - в конце удаление строки по номеру
Но возникает резонный вопрос, когда идет многопоток строчки сдвигаются и общее кол-во постоянно уменьшается:rolleyes: не удаляется ли строка, которая еще не задействована, а прошлая сохраняется?
Исходя из здравого смысла скажу - полюбому будут косяки) хорошо если список большой, но если список на 12 строк и запущено 10 потоков, возможны приключения. Для того чтобы все нормально работало, надо и количество строк в списке и значение и удаление делать под одним локером (имхо), А если делать 2 экшена - то автоматом логично что единого локера для потока не будет. Следовательно - конструкция будет бажная)
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
Давно интересовал простой вопрос.
Я все проекты реализую так. 1 - вычисление общего кол-ва строчек 2 - рандом от 0 до общего 3 - в конце удаление строки по номеру
Зачем?
Есть экшен взятия рандомной строки с удалением.
 

Mandyson

Client
Регистрация
03.06.2012
Сообщения
410
Благодарностей
84
Баллы
28
Есть экшен взятия рандомной строки с удалением.
Так смысл в том, что шаблон может не выполниться, а строка всегда удаляется. Именно поэтому я переношу экшен удаления в конец выполнения шаблона.
под одним локером (имхо)
что за локеры?:o
 

Lexicon

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

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
1) Я в таком случае по бедэнду пишу взятую строку обратно в фаил в конец списка - и все ок
Вот вам ответ на проблему :-)
 

Mandyson

Client
Регистрация
03.06.2012
Сообщения
410
Благодарностей
84
Баллы
28

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 562
Благодарностей
9 176
Баллы
113
тоже использую возврат данных по бед энду.. хорошее решение..
выход - хорошенько оттестирвоать шаблон, проверить на все возможные глюки, которые могут возникнуть..
стопорятся наверное где нибудь в циклах, из которых нет корректного выхода?
 

Mandyson

Client
Регистрация
03.06.2012
Сообщения
410
Благодарностей
84
Баллы
28
тоже использую возврат данных по бед энду.. хорошее решение..
выход - хорошенько оттестирвоать шаблон, проверить на все возможные глюки, которые могут возникнуть..
стопорятся наверное где нибудь в циклах, из которых нет корректного выхода?
Обычно действительно перегруженные шаблоны с использованием проксей, точно не сказать какие)
Может банально ребутнутся сервак, т.к. часто там ставлю зеннобокс.
 

zennoX

Client
Регистрация
05.04.2014
Сообщения
484
Благодарностей
134
Баллы
43
1) Я в таком случае по бедэнду пишу взятую строку обратно в фаил в конец списка - и все ок
Это из каждого экшена по красному выходу выводить на сохранение?
 

Lexicon

Client
Регистрация
27.12.2012
Сообщения
1 775
Благодарностей
901
Баллы
113
  • Спасибо
Реакции: zennoX

zennoX

Client
Регистрация
05.04.2014
Сообщения
484
Благодарностей
134
Баллы
43
Ух, ты не знал!

Это все недостаток нормальной справки сказывается!)

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

http://floomby.ru/s1/vWxax5
 

Lexicon

Client
Регистрация
27.12.2012
Сообщения
1 775
Благодарностей
901
Баллы
113
Нет))) это недостаток усидчивости, любопытства и лени)))
 

zennoX

Client
Регистрация
05.04.2014
Сообщения
484
Благодарностей
134
Баллы
43
С недостатком лени обычно не доходят до этого форума))
Ссори за офтоп)
Еще раз спасибо
 

Lexicon

Client
Регистрация
27.12.2012
Сообщения
1 775
Благодарностей
901
Баллы
113
А вот и нет))) сюда добираются самые ленивые)))) которые хотят заставить эту шарманку на столе работать вместо себя))))
А самые ленивые среди ленивых ищут пути, чтобы и проекты были покороче)))))
 

zennoX

Client
Регистрация
05.04.2014
Сообщения
484
Благодарностей
134
Баллы
43
Верно, перепутал, это и имел в виду)))
 

zennoX

Client
Регистрация
05.04.2014
Сообщения
484
Благодарностей
134
Баллы
43
Еще вопрос, если работа шаблона заканчивается по красному выходу с последующим выполнением экшенов, конечный результат работы шаблона успех или неуспех? (в плане статы в зеннопостере, не в пм)
 

Lexicon

Client
Регистрация
27.12.2012
Сообщения
1 775
Благодарностей
901
Баллы
113
Успех. Ты же нарисовал обработку исключений, значит все спланировал и предусмотрел)))
 

rostonix

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

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