Локи для запросов

jkarsak37428

Client
Регистрация
20.12.2015
Сообщения
137
Благодарностей
11
Баллы
18
Всем привет! Есть локи для использования списков в многопотоке, а есть ли локи для использования запросов? То есть чтобы если один поток выполняет запрос другие ожидали
 

Шива

Client
Регистрация
05.02.2018
Сообщения
1 088
Благодарностей
341
Баллы
83
Есть
Локай список и проверяй.
 

jkarsak37428

Client
Регистрация
20.12.2015
Сообщения
137
Благодарностей
11
Баллы
18

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 417
Благодарностей
5 454
Баллы
113
ну так запросы тоже локай, будут ждать. Или тебе надо что бы потоки по очереди делали. Тогда надо еще лочить глобабки. :D
 
  • Спасибо
Реакции: jkarsak37428

Шива

Client
Регистрация
05.02.2018
Сообщения
1 088
Благодарностей
341
Баллы
83
Список итак локается, после этого идет гет/пост запрос как сделать чтобы они были последовательны а не одновременно?
ну так сделай проверку лока списка и потом делай запросы
 

jkarsak37428

Client
Регистрация
20.12.2015
Сообщения
137
Благодарностей
11
Баллы
18
ну так запросы тоже локай, будут ждать. Или тебе надо что бы потоки по очереди делали. Тогда надо еще лочить глобабки. :D
А как лочить запросы? Где посмотреть код? Мне необходимо чтобы запросы одновременно не шли
 

Шива

Client
Регистрация
05.02.2018
Сообщения
1 088
Благодарностей
341
Баллы
83
А как лочить запросы? Где посмотреть код? Мне необходимо чтобы запросы одновременно не шли
Скажи им запросы вот смотрите на список.
Один запрос видит что список не локнут и решает сделать запрос и сразу блочит его обратно как запрос выполнен он дарит списку носки и тот уже входит в анлок и на него смотрит другой запрос и тд
 
  • Спасибо
Реакции: jkarsak37428

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 375
Благодарностей
2 040
Баллы
113
я как то мьютекс использовал, тоже тема удобная, пока разрешения пиз...ть не даш другие потоки молчат )))))))))
 
  • Спасибо
Реакции: jkarsak37428

jkarsak37428

Client
Регистрация
20.12.2015
Сообщения
137
Благодарностей
11
Баллы
18
Получается сам запрос тоже необходимо затолкать в конструкцию лока?
  1. lock (SyncObjects.ListSyncer){
  2. Работа со списком
  3. Делаем запрос
  4. }
 
  • Спасибо
Реакции: Mikhail B.

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 375
Благодарностей
2 040
Баллы
113
Получается сам запрос тоже необходимо затолкать в конструкцию лока?
  1. lock (SyncObjects.ListSyncer){
  2. Работа со списком
  3. Делаем запрос
  4. }
если важно что получится на выходе после запроса то да ?
только выйдя с него все потоки это действия повторят с запросом имено
 
  • Спасибо
Реакции: jkarsak37428

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 375
Благодарностей
2 040
Баллы
113
и если у тя будет запущено в 100 потоков и на этом запросе глючнет, то всё висеть будет, не вижу смысла его блочить если нет глобальной какой то что бы передать последующим потокам что повторять нинадо
 
  • Спасибо
Реакции: jkarsak37428

jkarsak37428

Client
Регистрация
20.12.2015
Сообщения
137
Благодарностей
11
Баллы
18
Да наверное в моем случае лучше глобальную вводить, как сразу недодумался хз
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 375
Благодарностей
2 040
Баллы
113
Да наверное в моем случае лучше глобальную вводить, как сразу недодумался хз
тут тебе ещё неделю придётся с глобалками помучаться
минусы сразу такие скажу, если сам не надумаешь чтобы глобалку обнулить при любом старте то придётся всегда зенку перезагружать чтобы только обнулить глобалку
 
  • Спасибо
Реакции: Mikhail B.

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 417
Благодарностей
5 454
Баллы
113
тут тебе ещё неделю придётся с глобалками помучаться
минусы сразу такие скажу, если сам не надумаешь чтобы глобалку обнулить при любом старте то придётся всегда зенку перезагружать чтобы только обнулить глобалку
Я сделал обнуление, при успешном завершении проекта. Но вот если сам завершаешь или по ошибке завершается. то уже обнулить не удается. Можно сделать по бедэнду обнуление конечно, но что если 1 поток упадет, а остальные будут работать, это тоже не приемлемо.
 

jkarsak37428

Client
Регистрация
20.12.2015
Сообщения
137
Благодарностей
11
Баллы
18
тут тебе ещё неделю придётся с глобалками помучаться
минусы сразу такие скажу, если сам не надумаешь чтобы глобалку обнулить при любом старте то придётся всегда зенку перезагружать чтобы только обнулить глобалку
Хм получается тогда можно изначальное значение из файла дергать?
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 375
Благодарностей
2 040
Баллы
113
а вообще есть такой косяк у зенки, и лок не спасает, выставив 100 потоков и нажав старт три потока могут быть уже находиться в локе
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 375
Благодарностей
2 040
Баллы
113
Хм получается тогда можно изначальное значение из файла дергать?
я тебе ничего не продаю сразу говорю, даже не намекаю на себя, нет из файла дёргать это плохое решение, лучше закажи какой то кусок кода
 

jkarsak37428

Client
Регистрация
20.12.2015
Сообщения
137
Благодарностей
11
Баллы
18

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 375
Благодарностей
2 040
Баллы
113
Я сделал обнуление, при успешном завершении проекта. Но вот если сам завершаешь или по ошибке завершается. то уже обнулить не удается. Можно сделать по бедэнду обнуление конечно, но что если 1 поток упадет, а остальные будут работать, это тоже не приемлемо.
я себе сделал решение что глобалка при любом старте обнуляется
 

jkarsak37428

Client
Регистрация
20.12.2015
Сообщения
137
Благодарностей
11
Баллы
18

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 417
Благодарностей
5 454
Баллы
113
я себе сделал решение что глобалка при любом старте обнуляется
В принципе. Если поставить обнуление в начале шаблона потом паузу, и уже распределение потоков, то должно сработать. Надо попробовать.

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

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 375
Благодарностей
2 040
Баллы
113

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 375
Благодарностей
2 040
Баллы
113
В принципе. Если поставить обнуление в начале шаблона потом паузу, и уже распределение потоков, то должно сработать. Надо попробовать.
эти галочки не пробывал, так как они всё для браузерных шаблонов и настройки больше для инстансов
 

jkarsak37428

Client
Регистрация
20.12.2015
Сообщения
137
Благодарностей
11
Баллы
18
В принципе. Если поставить обнуление в начале шаблона потом паузу, и уже распределение потоков, то должно сработать. Надо попробовать.

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

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 375
Благодарностей
2 040
Баллы
113
Хм получается тогда можно изначальное значение из файла дергать?
сейчас конечно не найду, но прежде чем что то написать я люблю тестить, и мои скрины тестов есть на форуме что при локе в 10 потоков заходит сразу 2 потока
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 375
Благодарностей
2 040
Баллы
113

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 417
Благодарностей
5 454
Баллы
113
а если потоки постоянно добавлять необходимо, теперь ума не приложу что то
Да не подойдет если добавлять. А если ты знаешь заранее что надо допустим 30 потоков. то данный метод подойдет.
 

jkarsak37428

Client
Регистрация
20.12.2015
Сообщения
137
Благодарностей
11
Баллы
18

jkarsak37428

Client
Регистрация
20.12.2015
Сообщения
137
Благодарностей
11
Баллы
18
А просто запрос в лок обернуть нельзя? То есть со списком чтобы одновременно все было без лока а уже на запросе происходил лок, как то вот так нужно даже
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 375
Благодарностей
2 040
Баллы
113
В принципе. Если поставить обнуление в начале шаблона потом паузу, и уже распределение потоков, то должно сработать. Надо попробовать.

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

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