Как передать переменную между профилями без конфликта в многопотоке?

  • Автор темы Автор темы Kurator
  • Дата начала Дата начала

Kurator

Client
Регистрация
10.05.2016
Сообщения
86
Реакции
7
Баллы
8
Задача такая: профиль1 создает переменную1 с рандомным значением. я передаю переменную1 с этим значением в профиль2 через глобальную переменную в этом же шаблоне. Когда профиль2 отработает, он должен вернуть переменную2 профилю1.
В многопотоке не будет ли одинаковые значения у переменной1 и переменной2 для всех потоков? Ведь пространство имён одинаковые, как я понимаю, для всех потоков будет. как лучше сделать?
Если можно было бы каждому потоку присвоить только то пространство имён для глобальной переменной, которое использовал бы только этот поток. Т.е. у каждого потока свои глобалки. Так можно сделать?
 
лучше сделать через общие файлы. например таблицы/БД , с обязательным локированием на время работы с этими ресурсами.
 
  • Оценить
Реакции: Kurator
1.как сделать локирование?
2. если локнуть, то другие потоки будут простаивать? тогда это не многопоток получается(
 
1.как сделать локирование?
2. если локнуть, то другие потоки будут простаивать? тогда это не многопоток получается(
ну да. именно в этом месте будет многопоток, но выстроившийся в очередь. так сказать узкое место, но очень необходимое при работе с общими данными. поэтому локирование не стоит использовать направо и налево, а только в конкурирующих местах. и еще надо использовать разные объекты для лока, что бы ненароком не тормознуть потоки обращающиеся к разным общим таблицам, но залоченные одним локом.
тема с локированием https://zennolab.com/discussion/thr...tochnye-shablony-est-gljuki.88478/post-593565
 
  • Оценить
Реакции: Kurator

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