Многопоток и списки

Vik89

Client
Регистрация
05.11.2014
Сообщения
71
Благодарностей
14
Баллы
8
В шаблоне есть список (не привязанный к файлу).

При многопоточной работе этот список будет доступен сразу ВСЕМ потокам или же этот список будет доступен только Локально для каждого потока и для каждого потока будет своя уникальная копия этого списка в оперативке?
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 451
Благодарностей
1 885
Баллы
113
Если список не привязывается к файлу, то он создаётся отдельно для каждого потока и в каждом потоке он обрабатывается индивидуально.
 
  • Спасибо
Реакции: jiks и Vik89

gluckbahr

Client
Регистрация
05.04.2014
Сообщения
84
Благодарностей
25
Баллы
18
Можно ли список сделать глобальным?
Возникаю проблемы с сохранением списка из которого берут несколько потоков.
 

rostonix

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

gluckbahr

Client
Регистрация
05.04.2014
Сообщения
84
Благодарностей
25
Баллы
18
Иногда на многопоточном режиме бывает что из файла берет одну строку несколько раз, как этого можно избежать?
 
  • Спасибо
Реакции: socsecret.ru

GrandT

Client
Регистрация
23.07.2014
Сообщения
160
Благодарностей
64
Баллы
28
Иногда на многопоточном режиме бывает что из файла берет одну строку несколько раз, как этого можно избежать?
Удалять строку каждый раз при взятии из списка. Если список привязан с галками "загружать из файла" и "сохранять изменения в файл" то проблем быть не должно.
 
  • Спасибо
Реакции: gluckbahr

rostonix

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

socnet

Client
Регистрация
02.12.2014
Сообщения
137
Благодарностей
129
Баллы
43
А если разные шаблоны используют один привязанный список с удалением строки, то не возникнут проблемы?
 

rostonix

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

jonvy

Client
Регистрация
28.11.2015
Сообщения
305
Благодарностей
17
Баллы
18
Есть 5 потоков. Каждый поток создаёт файл по адресу:
{-Project.Directory-}\снипеты{-Variable.random-}.txt Это делается во вложенном шаблоне кубиком сохранить в файл
Далее в основном шаблоне имеется привязанный файл (загружать из файла и сохранять изменения. Без галки оставлять пустой файл) с таким же адресом. И вот тут начинается непонятность. В перьвью файла текст есть, а при попытке его от туда взять текста нету

Как это исправить?
 

jonvy

Client
Регистрация
28.11.2015
Сообщения
305
Благодарностей
17
Баллы
18

socsecret.ru

Client
Регистрация
30.09.2017
Сообщения
346
Благодарностей
209
Баллы
43
Работа с одним списком либо таблицей в многопотоке была и остаётся проблемной. Даже если брать строку с удалением, даже если везде стоят галочки - всё равно могут взяться одни и те же строки, или записаться данные в одно и тоже место. Я года 3 назад писал в ТП - мне сказали, что список локируется, и что пока один поток пишет туда данные, другие будут вставать в очередь и ждать . Но это же не правда. Да и мне кажется хорошо, что не правда, потому что при огромном количестве потоков это может привести к тормозам. Но как решать правильно эту проблему - не ясно. Было бы здорово иметь возможность иметь что-то типа глобального списка по аналогии с глобальной переменной.
 
Последнее редактирование:

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113
Работа с одним списком либо таблицей в многопотоке была и остаётся проблемной. Даже если брать строку с удалением, даже если везде стоят галочки - всё равно могут взяться одни и те же строки, или записаться данные в одно и тоже место. Я года 3 назад писал в ТП - мне сказали, что список локируется, и что пока один поток пишет туда данные, другие будут вставать в очередь и ждать . Но это же не правда. Да и мне кажется хорошо, что не правда, потому что при огромном количестве потоков это может привезти к тормозам. Но как решать правильно эту проблему - не ясно. Было бы здорово иметь возможность иметь что-то типа глобального списка по аналогии с глобальной переменной.
тема 4-х летней давности :-)
по спискам чего только за это время не написали. вот я у себя так решил эту проблему. https://zennolab.com/discussion/threads/ne-soxranjaet-tekst-v-spisok.53049/page-2#post-580788
а вообще по локам было ну очень много постов и статей.
 

sten30

Client
Регистрация
05.09.2017
Сообщения
253
Благодарностей
31
Баллы
28
Работа с одним списком либо таблицей в многопотоке была и остаётся проблемной. Даже если брать строку с удалением, даже если везде стоят галочки - всё равно могут взяться одни и те же строки, или записаться данные в одно и тоже место. Я года 3 назад писал в ТП - мне сказали, что список локируется, и что пока один поток пишет туда данные, другие будут вставать в очередь и ждать . Но это же не правда. Да и мне кажется хорошо, что не правда, потому что при огромном количестве потоков это может привести к тормозам. Но как решать правильно эту проблему - не ясно. Было бы здорово иметь возможность иметь что-то типа глобального списка по аналогии с глобальной переменной.
Я тоже заморочился решением проблемы с списком в многопотоке.
И решил вопрос просто. Поставил паузу 10 секунд в начале,
и везде где мог в циклах поставил удаление из списка строк содержащих текст переменной с которой работает поток.
За 10 секунд остается только одна истинная строка в списке..))
 
Последнее редактирование:

mig-z

Client
Регистрация
05.12.2014
Сообщения
305
Благодарностей
71
Баллы
28
Я тоже заморочился решением проблемы с списком в многопотоке.
И решил вопрос просто. Поставил паузу 10 секунд в начале,
и везде где мог в циклах поставил удаление из списка строк содержащих текст переменной с которой работает поток.
За 10 секунд остается только одна истинная строка в списке..))
Тогда можно было и без паузы, ведь речь о глобальном списке. А вот с таблицей так не получается.

Работа с одним списком либо таблицей в многопотоке была и остаётся проблемной. Даже если брать строку с удалением, даже если везде стоят галочки - всё равно могут взяться одни и те же строки, или записаться данные в одно и тоже место. Я года 3 назад писал в ТП - мне сказали, что список локируется, и что пока один поток пишет туда данные, другие будут вставать в очередь и ждать . Но это же не правда. Да и мне кажется хорошо, что не правда, потому что при огромном количестве потоков это может привести к тормозам. Но как решать правильно эту проблему - не ясно. Было бы здорово иметь возможность иметь что-то типа глобального списка по аналогии с глобальной переменной.
Может так: https://zennolab.com/discussion/threads/prisvoenie-potoku-opredlennoj-stroki-v-tablice-vozmozhno.99265/
?
 

selectel56

Client
Регистрация
11.12.2016
Сообщения
100
Благодарностей
53
Баллы
28
Работа с одним списком либо таблицей в многопотоке была и остаётся проблемной. Даже если брать строку с удалением, даже если везде стоят галочки - всё равно могут взяться одни и те же строки, или записаться данные в одно и тоже место. Я года 3 назад писал в ТП - мне сказали, что список локируется, и что пока один поток пишет туда данные, другие будут вставать в очередь и ждать . Но это же не правда. Да и мне кажется хорошо, что не правда, потому что при огромном количестве потоков это может привести к тормозам. Но как решать правильно эту проблему - не ясно. Было бы здорово иметь возможность иметь что-то типа глобального списка по аналогии с глобальной переменной.
Была проблема схожая, БД решает многое, правда с настройкой заморочек полно.
 
Последнее редактирование:

blooedhuet

Client
Регистрация
06.01.2019
Сообщения
37
Благодарностей
2
Баллы
8
Не могу ничего понять. В проджекте запускаю поток шлет 3 письма в минуту. Ставлю 60 потоков, шлют 40 писем в минуту. Как вообще работает многопоток? Инстансы стоят в очереди и ждут тело письма. Как это решать? Пробовал из списка забирать, из файла, разницы особо нет.... Кто то может что то посоветовать?
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
Не могу ничего понять. В проджекте запускаю поток шлет 3 письма в минуту. Ставлю 60 потоков, шлют 40 писем в минуту. Как вообще работает многопоток? Инстансы стоят в очереди и ждут тело письма. Как это решать? Пробовал из списка забирать, из файла, разницы особо нет.... Кто то может что то посоветовать?
трассировка проекта позволит увидеть затраты времени на выполнение экшенов и выяснить на их основе где именно образуется очередь
 

Ахилес

Client
Read only
Регистрация
11.11.2020
Сообщения
956
Благодарностей
392
Баллы
63
Не могу ничего понять. В проджекте запускаю поток шлет 3 письма в минуту. Ставлю 60 потоков, шлют 40 писем в минуту. Как вообще работает многопоток? Инстансы стоят в очереди и ждут тело письма. Как это решать? Пробовал из списка забирать, из файла, разницы особо нет.... Кто то может что то посоветовать?
Получить данные из списка : 0 секунд.
Отправить письмо : 20 секунд

И конечно в многопотоке дополнительная задержка это получение данных из списка *HAHA*

Трассировка то что показывает ?
 

invergo

Client
Регистрация
17.02.2016
Сообщения
50
Благодарностей
24
Баллы
8
Не могу ничего понять. В проджекте запускаю поток шлет 3 письма в минуту. Ставлю 60 потоков, шлют 40 писем в минуту. Как вообще работает многопоток? Инстансы стоят в очереди и ждут тело письма. Как это решать? Пробовал из списка забирать, из файла, разницы особо нет.... Кто то может что то посоветовать?
А почему вообще решили что проблема в получении данных?
Может
Большая нагрузка на интернет канал
Большая нагрузка на ресурсы компьютера

Увеличение потоков в Х раз не значит что скорость работы увеличится тоже в Х рз
 

blooedhuet

Client
Регистрация
06.01.2019
Сообщения
37
Благодарностей
2
Баллы
8
канал 10 гигабит.
Точно не в интернете проблема, а в ожидании очереди..
А что трассировка может показать? Инстансы не висят, а ждут.
 

blooedhuet

Client
Регистрация
06.01.2019
Сообщения
37
Благодарностей
2
Баллы
8
Получить данные из списка : 0 секунд.
Отправить письмо : 20 секунд

И конечно в многопотоке дополнительная задержка это получение данных из списка *HAHA*

Трассировка то что показывает ?
Получить данные из списка : 0 секунд.
Где такие настройки?
 

Ахилес

Client
Read only
Регистрация
11.11.2020
Сообщения
956
Благодарностей
392
Баллы
63
Получить данные из списка : 0 секунд.
Где такие настройки?
какие еще настройки ?

А что трассировка может показать? Инстансы не висят, а ждут.
покажет, где и сколько времени было затрачено на операциях.
один вопрос, а зачем ты их заставляешь ждать данные ? отдавай сразу, без ожидания :bk:
 

invergo

Client
Регистрация
17.02.2016
Сообщения
50
Благодарностей
24
Баллы
8
канал 10 гигабит.
Точно не в интернете проблема, а в ожидании очереди..
А что трассировка может показать? Инстансы не висят, а ждут.
Чего они ждут? Откуда информация что они ждут получения данных из таблицы?
Ты сам решил что проблема в ожидании данных. Доказательств этого не предоставил.
Вариантов может быть много почему "медленно работает"
 

blooedhuet

Client
Регистрация
06.01.2019
Сообщения
37
Благодарностей
2
Баллы
8
Чего они ждут? Откуда информация что они ждут получения данных из таблицы?
Ты сам решил что проблема в ожидании данных. Доказательств этого не предоставил.
Вариантов может быть много почему "медленно работает"
Доказательства чего нужны?
Что 40 потоков 13 писем в минуту шлют? А в проджекте 1 поток 3 в минуту?
Я вижу что инстансы стоят и ждут получения данных из списка.
Какие на пример варианты? В шаблоне все четко выставлено.
 

blooedhuet

Client
Регистрация
06.01.2019
Сообщения
37
Благодарностей
2
Баллы
8
Извиняюсь за беспокойство.
Инстансы на вводе застывают....
 

blooedhuet

Client
Регистрация
06.01.2019
Сообщения
37
Благодарностей
2
Баллы
8
Можете подсказать. Включил браузер хром, в проджекте все ок отрабатывают клики по атрибутам, а в зенке в ничего не делает? Просто инстанс стоит и все.
 

invergo

Client
Регистрация
17.02.2016
Сообщения
50
Благодарностей
24
Баллы
8
Можете подсказать. Включил браузер хром, в проджекте все ок отрабатывают клики по атрибутам, а в зенке в ничего не делает? Просто инстанс стоит и все.
Просто инстанс стоит и все - не может быть
Если бы не нашел элемент то была бы ошибка
А так скорее всего "браузер не понимает что страница загрузилась" и ждет пока она загрузится до конца
Были такие проблемы с запросами к яндекс метрики
Если открыть инстанс, то внизу слева будет статус с кружком

Ну или есть какой-нибудь цикл который по кругу гоняет одни и те-же действия
 

blooedhuet

Client
Регистрация
06.01.2019
Сообщения
37
Благодарностей
2
Баллы
8
Поставил версию 7.7.10. Все полетело. 11 переставлял, хром не работал на ней.
Видимо у хромиума стабильности от слова нет совсем... Инстансы зависают на ровном месте...
Всем спасибо за отзывчивость!
 

Ахилес

Client
Read only
Регистрация
11.11.2020
Сообщения
956
Благодарностей
392
Баллы
63
Поставил версию 7.7.10. Все полетело. 11 переставлял, хром не работал на ней.
Видимо у хромиума стабильности от слова нет совсем... Инстансы зависают на ровном месте...
Всем спасибо за отзывчивость!
ну если на стандартных кубиках все делаешь, то конечно :bk: еще и не такое встретишь.
а вообще они не зависают, а ожидают состояния окончания загрузки. если интересно, гугли про кубик состояние занятости ;-)
 
  • Спасибо
Реакции: blooedhuet

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