Если конфликты возможны, есть ли способ их предотвратить или обнаружить и обработать?
Создавайте переменные-флаги. В эту переменную записывается информация о том, что какой-то из экспертов выполняет потенциально конфликтную операцию. Прежде чем эксперт что-то сделает пусть сначала прочитает флаг и удостоверится, что другой эксперт в это время не выполняет конфликтную операцию.
Создавайте переменные-флаги. В эту переменную записывается информация о том, что какой-то из экспертов выполняет потенциально конфликтную операцию. Прежде чем эксперт что-то сделает пусть сначала прочитает флаг и удостоверится, что другой эксперт в это время не выполняет конфликтную операцию.
Спасибо, что ответили.
О флагах я думал. При этом ничего не меняется. Если возможны конфликты, описанные выше, с тем же успехом два эксперта одновременно начнут менять значение флага. Мне кажется, будет еще хуже, т.к. заклинит обоих.
Спасибо, что ответили.
О флагах я думал. При этом ничего не меняется. Если возможны конфликты, описанные выше, с тем же успехом два эксперта одновременно начнут менять значение флага. Мне кажется, будет еще хуже, т.к. заклинит обоих.
еще раз для тех кто в танке: перед выполнением потенциально конфликтной операции эксперт 1. считывает значение флага 2. если оно 0 (второй эксперт не выполняет операцию), то 3. устанавливает флаг=1 4. выполняет операцию 5. устанавливает флаг=0.
два эксперта одновременно флаг менять не смогут. если вы о промежутк времени между пунктами 1. и 2., то команда условного перехода выполняется за один такт процессора, так что второй эксперт вклиниться сюда просто физически не сможет.
Насколько я знаю два эксперта одновременно одну глобальную переменную менять не могут, т.е. эта защита изначально заложена в терминале...
Вот только незадача я точно помню что про это читал где-то тут на форуме и это было не больше нескольких месяцев назад, но где вспомнить не могу.
И вобще есть вероятность, что это реализовано в 5, а не в 4 и именно в этом ключе и сообщалось, но в любом случае в 5 это точно есть, а в 4-ке под вопросом
P.S. Перечитал! Да, бредовенький пост получился... 8-)).
два эксперта одновременно флаг менять не смогут. если вы о промежутк времени между пунктами 1. и 2., то команда условного перехода выполняется за один такт процессора, так что второй эксперт вклиниться сюда просто физически не сможет.
Yesss! Спасибо за решение. С тактами процессора у меня напряженка: не проходили мы этого:)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Здравствуйте.
Несколько вопросов.
1. Возникнет ли конфликт, если два эксперта одновременно попытаются изменить глобальную переменную терминала?
2. Возникнет ли конфликт, если два эксперта одновременно попытаются сделать запись в файл?
3. Возникнет ли конфликт, если два эксперта одновременно попытаются создать файл (с использованием тех же операторов)?
Если конфликты возможны, есть ли способ их предотвратить или обнаружить и обработать?
Понятно, что вероятность таких совпадений очень мала, но очень не хочется неприятностей, если это все-же произойдет.
С уважением, Евгений