[АРХИВ]Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 5. - страница 382
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Бурные аплодисменты! На тему кода со страницы 378. Даже если терминал и регигулирует порядок очереди, он не может знать в каком случае функция исполнялась, а в каком была отклонена.
И что с того? Зачем ему это знать? Атомарный доступ обеспечен. Этого достаточно. Остальное обрабатывай сам. Про какую задачу говоришь? А то всё абстрактно.
Атомарного доступа недостаточно. Нет гарантии последовательного исполнения задач, какая-нибудь задача может остаться за боротом. Ваш код и логи, показывают, что задачи выполнются беспорядочно, а не последовательно.
...Остальное обрабатывай сам...
Так вот об этом и пишу, что надо самостоятельно принимать меры, только обеспечения атомарного доступа недостаточно.
...Этого достаточно. Остальное обрабатывай сам....
Вадим, вы потрясающе себе противоречите. Сначал пишите, что достаточно. Потом, оказывается, что понимаете (или догадываетесь), что что-то еще надо делать.
можно ли ее дальше использовать традиционым способом-
Profit_pomnim=365; Bumbara=Profit_pomnim; или нужно обращаться только через специальные функции? GlobalVariableSet( "Profit_pomnim", 365);
Доброго дня! Напишите пожалуста, после создания глобальной переменной GlobalVariableSet( "Profit_pomnim", Itogo_Profit);
можно ли ее дальше использовать традиционым способом-
Profit_pomnim=365; Bumbara=Profit_pomnim; или нужно обращаться только через специальные функции?
Bumbara=Profit_pomnim - нельзя так, переменной Profit_pomnim нет. Но есть глобальная переменная Profit_pomnim.
Вот так надо: Bumbara=GlobalVariableGet("Profit_pomnim");
Атомарного доступа недостаточно. Нет гарантии последовательного исполнения задач, какая-нибудь задача может остаться за боротом. Ваш код и логи, показывают, что задачи выполнются беспорядочно, а не последовательно.
Подозреваю, что ты зациклен на особом порядке обращения к ресурсу. Это неправильный подход для организации алгоритма. Пиши так, чтобы это было неважно.
Так вот об этом и пишу, что надо самостоятельно принимать меры, только обеспечения атомарного доступа недостаочно.
Вадим, вы потрясающе себе противоречите. Сначал пишите, что достаточно. Потом, оказывается, что понимаете (или догадываетесь), что что-то еще надо делать.
Нет противоречий. Выше ответил.
====================
На счёт замороченности, припоминаю, как ты писал функцию со сложным алгоритмом вычисления количества дней в месяце. До сих пор улыбаюсь, как вспомню.
Дмитрий, не надо усложнять. Если есть константы, то вычислять их не надо. Достаточно объявить их.
Тоже касается многопоточности. Если она не нужна, не надо её использовать. Особый порядок обращения к ресурсу подразумевает однопоточное исполнение.
Еще, насчет регулирования системой. Еси создано несколько потоков - да, система будет регулировать. Но если кто-то с боку полез в эти потоки, тут уже надо обо всем подумать самостоятельно, чуда от системы не будет.
Zhunko:
1. Не понимаю... Как это?... Какая гарантия?
2. Ты же программистом себя называешь.
3. Пиши так чтобы гарантировалось.
4. Как задача может "оказаться за ботом"? Что же ты туда написал, что она не выполняется?
5. Подозреваю, что ты зациклен на особом порядке обращения к ресурсу. Это неправильный подход для организации алгоритма. Пиши так, чтобы это было неважно.
6. В моей практике ни разу этого не потребовалось. Всегда можно избежать такого подхода. Упрощай. Надёжнее работать будет.Нет противоречий. Выше ответил.
====================
7. На счёт замороченности, припоминаю, как ты писал функцию со сложным алгоритмом вычисления количества дней в месяце. До сих пор улыбаюсь, как вспомню.
8. Дмитрий, не надо усложнять. Если есть константы, то вычислять их не надо. Достаточно объявить их.
9. Тоже касается многопоточности. Если она не нужна, не надо её использовать.
1. Сочувствую!
2. Где, когда, в каком месте? И причем тут это сечас?
3. Я то пишу так, чтобы гарантировалось.
4. Любая из тех, к которым обеспечивается атомарный доступ.
5. Нет. И не зациклен, а принимаю меры, чтобы все задачи исполнялись по порядку.
6. Не надо ляля. Функция обмена данными между терминалами из вашей библиотеки требует этого, а не только атомарного доступа.
7. Какая такая функция? Поподробней. Вот это? Что такого улыбнуло? Может вы просто чего-то не поняли. Если та функция, это был спортивный интерес и не более того. Между прочим довольно сложная задача, и наиболее оптимаьный алгоритм для этой задачи (из известных), тоже достаточно заморочен. Так что, ваш сарказм неудачен.
8. А может вам в деский сад нянечкой устроиться? Уровень поучений тот самый, подходящий. Может быть и в предыдущем пункте намек, что я типа не знаю как функциями эмкуля перевести время в секундах в часы минуты и т.д?
9. Проблемы с памятью, или с осознанием реальности? Вспоните о чем собственно разгвор - от том, как параллельное исполнение задач превратить в последовательное.
9. Проблемы с памятью, или с осознанием реальности? Вспоните о чем собственно разгвор - от том, как параллельное исполнение задач превратить в последовательное.
С твоего предположения, что синхронизация не работает, началось:
Вадим, а вы пробовали применять ее? Нифига она не синхронизирует. Недавно игрался с ней. Очередь самому надо выстраивать. К сожалению., она всего лишь позволяет сократить код строчки на три. Ну или я чего-то не понимаю.
Привёл код, где синхронизация работает. Атомарный доступ к ресурсу обеспечивается. Остальное - твоя заморочка со сведением потоков в один поток. Предложил тебе пересмотреть ошибочный алгоритм. Для такой задачи есть единственное правильное решение - свести весь код в один поток. Тогда обращение к ресурсу будет по порядку без синхронизации. Время исполения кода будет таким же, как в многопоточном исполнении. Упрощай.
1. С твоего предположения, что синхронизация не работает началось:
Привёл код, где синхронизация работает. Атомарный доступ к ресурсу обеспечивается. Остальное - твоя заморочка со сведением потоков в один поток. Предложил тебе пересмотреть ошибочный алгоритм. Для такой задачи есть единственное правильное решение - свести всё в один поток. Тогда обращение к ресурсу будет по порядку без синхронизации. Врямя исполения кода будет таким же, как в многопоточном исполнении. Упрощай.
1. Не с предположения, а с результатов эксперимента, которые, между прочим подтверждены и вашим экспериментом на стр. 378.
2. В коде на странице 378 обеспечивается только атомарный доступ. Очередь исполнения задач не выстраивается. Может сложиться так, что какая-то из задачь очень долго не будет исполняться.