Несколько копий проектов и общий код

Alekseyaz

Client
Регистрация
20.11.2014
Сообщения
162
Благодарностей
30
Баллы
28
Добавляю один и тот же файл проекта в zp несколько раз, и в zp переименовываю проект_1, проект_2 итд, запускаю одновременно. Это будет тоже самое что если запущу один но в многопотоке?

После выполнения первого проекта проект_1 если в общем коде есть статичные поля и он их изменил static int i = 1, i +=1; ... остальные проекты стартуя получают старые уже инициализированные переменные от первого проекта? Файл проекта один и тот же, просто несколько копий добавлены в zp.

То есть статика в общем коде инициализируются один раз при запуске проекта, дальше она после окончания выполнения не обнуляется и так висит в памяти?

Второй вопрос, что происходит со статикой в внешних общих библиотеках если ее юзают одновременно разные проекты?
 

RoyalBank

Client
Регистрация
07.09.2015
Сообщения
557
Благодарностей
547
Баллы
93
Это будет тоже самое что если запущу один но в многопотоке?
Будут работать самостоятельно, как разные шаблоны.
остальные проекты стартуя получают старые уже инициализированные переменные от первого проекта?
дальше она после окончания выполнения не обнуляется и так висит в памяти?
Нет, каждое выполнение будет начинаться со статичных значений, в памяти ничего не висит.
что происходит со статикой в внешних общих библиотеках если ее юзают одновременно разные проекты?
Ничего не происходит, винда берет на себя эту заботу.

Если же, ты работаешь разными проектами/шаблонами/потоками с одним файлом, то необходимо прописываться lock'и, чтобы не было ошибок записи. Чтение, не обязательно лочить.
 

nicanil

Client
Регистрация
06.03.2016
Сообщения
2 242
Благодарностей
1 805
Баллы
113
остальные проекты стартуя получают старые уже инициализированные переменные от первого проекта?
Да. Изменения статичной переменной в одной копии отразятся и в других копиях.
 
  • Спасибо
Реакции: Alekseyaz

Alekseyaz

Client
Регистрация
20.11.2014
Сообщения
162
Благодарностей
30
Баллы
28
Сейчас наблюдаю то что если добавить один и тот же проект в zp несколько раз сделав копии они будут использовать общий код и статику в общем методе, то есть пересекаться . Если сделать копии файлов проекта и переименовать то у каждого будет свой общий код.
 

Alekseyaz

Client
Регистрация
20.11.2014
Сообщения
162
Благодарностей
30
Баллы
28
Будут работать самостоятельно, как разные шаблоны.

Нет, каждое выполнение будет начинаться со статичных значений, в памяти ничего не висит.
Получается что не так, можете протестировать сами. Один и тот же шаблон добавленный в zp несколько раз разделяет ресурсы из общего кода, вот если файл проекта переименовать и сделать отдельно копию то да уже не будет разделять
 

Alekseyaz

Client
Регистрация
20.11.2014
Сообщения
162
Благодарностей
30
Баллы
28
Еще такой вопрос, статику в общей библиотеке будут разделять между собой все потоки в рамках домена приложения? Если я запуще две копии zp на одном компе это уже будут два разных домена? И соответственно между собой пересекаться через статику в общей библиотеке не должны?
 

RoyalBank

Client
Регистрация
07.09.2015
Сообщения
557
Благодарностей
547
Баллы
93

doc

Client
Регистрация
30.03.2012
Сообщения
8 607
Благодарностей
4 600
Баллы
113
  • Спасибо
Реакции: RoyalBank

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