Глобальная переменная
-
Если идет работа с глобальной переменной в нескольких потоках, произойдет ли конфликт? Или переменная обрабатывается основным процессом (который управляет потоками) поочередно для каждого потока?
-
@blackhacker Цитатка из руководства "глобальные доступны на протяжении работы всего приложения".
-
@Canine Да, но например если выполнять чтение->редактирование->присвоение переменной в разных потоках, как это сработает? Если правильно думаю, выполнение каждой секции в шаблоне происходит асинхронно (с некоторой задержкой, т.к. в коде шаблона в начале выполнения каждой секции вызывается функция со знаком
!
), и может произойти "рассинхронизация" переменной в потоках. Второй поток прочитает переменную перед тем, как первый внесет в нее изменения. Но другое дело, если всем этим управляет основной процесс, выполняя действия для каждого потока поочередно.
-
@blackhacker Ну да, это вполне возможно.
-
@blackhacker Может сделать, чтобы каждый поток вносил свою метку и следующий бы ждал пока она не появится и проблемы не будет?!
-
@Canine Да, такое решение подошло бы. Но возможно, данные обрабатываются главным процессом и это не понадобится, подожду, пока разработчик ответит) Да и шанс скорее всего маленький, что произойдет конфликт
-
@blackhacker конфликтов не будет, админ уже освещал данный момент http://community.bablosoft.com/topic/364/многопоточное-использование-ресурсов-текстовых-файлов-как-списков