[АРХИВ]Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 5. - страница 380
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Как организовать очередь на языке программирования зависит от программиста. Очерёдность на уровне ядра исполняется системой и не гарантируется.
Ну и вот. В вашем коде, показанном несколько ранее, очередность не организована. А то, что системой не гарнатируется - об этом и идет разговор, и о том, что самостоятельно надо делать. Но в некоторых случаях это легко и просто сделать, а в некоторых будет много кода и думать надо, поскольку отсуствуют специальные средства для этого.
Вадим, у вас интересная манера ведения разговра, вы как будто забываете о чем был разговор или премудрость такая особая. Сначала показали код и стали утверждать, что очередность соблюдается, теперь выдвинули тзис-постулат о том, что не гарантируется... Порой самому себе противоречите, но это не есть гибкость ума.
Ну и вот. В вашем коде, показанном несколько ранее, очередность не организована. А то, что системой не гарнатируется - об этом и идет разговор, и о том, что самостоятельно надо делать. Но в некоторых случаях это легко и просто сделать, а в некоторых будет много кода и думать надо, поскольку отсуствуют специальные средства для этого.
Вадим, у вас интересная манера ведения разговра, вы как будто забываете о чем был разговор или премудрость такая особая. Сначала показали код и стали утверждать, что очередность соблюдается, теперь выдвинули тзис-постулат о том, что не гарантируется... Порой самому себе противоречите, но это не есть гибкость ума.
Дим, опять претензии? Очерёдность соблюдается согласно возможностям системы. Что ещё можно потребовать от системы?
Мне ниразу не потребовалось организовывать ещё каки-либо очереди. Системных возможностей достаточно. Ибо, непросто так не гарантируют очерёдности на уровне ядра. Зато гарантировано атомарное исполнение.
Дим, опять претензии? Очерёдность соблюдается согласно возможностям системы. Что ещё можно потребовать от системы?
Мне ниразу не потребовалось организовывать ещё каки-либо очереди. Системных возможностей достаточно. Ибо, непросто так не гарантируют очерёдности на уровне ядра. Зато гарантировано атомарное исполнение.
Если согласно возможностям системы, значит очередность не обеспечивается. Но вы же стали утверждать, что обеспечивается. Затем стали доказывать, что не обесечивается. Теперь пошла индульгенция - что согласно возможностям системы:) То, что вам никогда не требовалось обеспечить очередность, зависит от вашего принципиального подхода в программировании. Некоторые фунции из вашей известной библиотеки требуют обеспечения очередности. Раз не обеспечивается гарантированная очередность - поздравляю! Претензий у меня никаких нет, просто не надо разводить пургу и овеивать все каким-то мифом таинственности, секретности, и какого-то еще сверх чего-то.
Если согласно возможностям системы, значит очередность не обеспечивается. Но вы же стали утверждать, что обеспечивается. Затем стали доказывать, что не обесечивается. Теперь пошла индульгенция - что согласно возможностям системы:) То, что вам никогда не требовалось обеспечить очередность, зависит от вашего принципиального подхода в программировании. Некоторые фунции из вашей известной библиотеки требуют обеспечения очередности. Раз не обеспечивается гарантированная очередность - поздравляю! Претензий у меня никаких нет, просто не надо разводить пургу и овеивать все каким-то мифом таинственности, секретности, и какого-то еще сверх чего-то.
Система обеспечивает исполнение очереди по какому-то порядку, который тебе не нравится, и который не совпадает с порядком очереди модулей, что ожидают исполнения. Это ты называешь отсутствием очереди?
Для меня любая очередь является очередью. В том числе и очередь исполнения на уровне ядра. Она чёрный ящик. Принимай, как есть. Нужна своя очередь со своим порядком - организуй сам.
В той библиотеке нет потребности в особом порядке исполнения. Использую разные объекты синхронизации. В каком порядке исполняется - не важно. Над этим не надо задумываться. Система сама всё сделает.
Про таинственность не понял. Опять фантазии? :-))
1. Система обеспечивает исполнение очереди по какому-то порядку, который тебе не нравится, и который не совпадает с порядком очереди модулей, что ожидают исполнения. Это ты называешь отсутствием очереди?
2. Для меня любая очередь является очередью. В том числе и очередь исполнения на уровне ядра. Она чёрный ящик. Принимай, как есть. Нужна своя очередь со своим порядком - организуй сам.
3. В той библиотеке нет потребности в особом порядке исполнения. Использую разные объекты синхронизации. В каком порядке исполняется - не важно. Над этим не надо задумываться. Система сама всё сделает.
4. Про таинственность не понял. Опять фантазии? :-))
1. Обеспечение атомарного доступа совершенно не подразумевает обеспечения какого-то равномерного порядка доступа. Порядок обращения к функциям будет практически случаен, что не исключает того, что в какой-то период времени какая-то функция не останется за бортом.
2. Не черный ячик, а полностью отсутствует. Порядк исполнения - как бабуша с седьмого этажа чихнет.
3. Однако есть потребность в обеспечение равномерного исполнения всех функций (точнее обращения к терминалам находящимся в связке). Порой такое впечателние, что вы не понимаете о чем разговор. То есть, то нету. И всегда с таким выкрутасом... То нет, то есть, но по другому и не то и нет так...
4. Вы, Вадим настолько закрутились, что не поняли, что заморочились, как заморочились и на сколько...
1. Обеспечение атомарного доступа совершенно не подразумевает обеспечения какого-то равномерного порядка доступа. Порядок обращения к функциям будет практически случаен, что не исключает того, что в какой-то период времени какая-то функция не останется за бортом.
2. Не черный ячик, а полностью отсутствует. Порядк исполнения - как бабуша с седьмого этажа чихнет.
3. Однако есть потребность в обеспечение равномерного исполнения всех функций (точнее обращения к терминалам находящимся в связке). Порой такое впечателние, что вы не понимаете о чем разговор. То есть, то нету. И всегда с таким выкрутасом... То нет, то есть, но по другому и не то и нет так...
4. Вы, Вадим настолько закрутились, что не поняли, что заморочились, как заморочились и на сколько...
Вроде по пунктам разделил, но отвечаешь не по смыслу. Да, там и отвечать не требуется. Понял, что для тебя очередь и порядок её исполнения одно и тоже. Поэтому ты не понимаешь о чём говорю.
Если требуется равномерное исполнение, пользуй один поток. Тогда синхронизация не потребуется. Как можно обеспечить равномерное исполнение потоков, время исполнения и количество которых не известно?
У меня всё просто. Вход и выход из защищаемого блока, как положено по науке программирования. Совсем не надо заморачиваться на твою особую очередь. Когда-нибудь поймёшь это.
Да, ещё ты сильно ошибаешься по поводу выделенного. Правильно сделанная синхронизация (т.е. без ошибок в коде и логике) исполняет все потоки. Это гарантируется системой в отличии от порядка исполнения.
1. Вроде по пунктам разделил, но отвечаешь не по смыслу. Да, там и отвечать не требуется. Понял, что для тебя очередь и порядок её исполнения одно и тоже. Поэтому ты не понимаешь о чём говорю.
2. Если требуется равномерное исполнение, пользуй один поток. Тогда синхронизация не потребуется. Как можно обеспечить равномерное исполнение потоков, время исполнения и количество которых не известно?
3. У меня всё просто. Вход и выход из защищаемого блока, как положено по науке программирования. Совсем не надо заморачиваться на твою особую очередь. Когда-нибудь поймёшь это.
4. Да, ещё ты сильно ошибаешься по поводу выделенного. Правильно сделанная синхронизация (т.е. без ошибок в коде и логике) исполняет все потоки. Это гарантируется системой в отличии от порядка исполнения.
1. Видимо у вас проблемы с пониманием. Я то понимаю о чем вобще разговор.
2. Спасибо, но не спрашивал советов. Тем более, что разгвор идет о синхронизации того, что уже не в одном потоке.
3. А как положено по науке. По какой науке? По вашей собственной? Когда-нибудь поймете, что надо, только замороченного в этом ничего нет. Языки и алгоритмы программирования не дураки придумывали и создавали. Но почему-то они обеспечены средствами синхронизации и создания очереди.
4. Очень не ошибаюсь. Если бы правильная....Если бы была синзхронизация. Но в том коде который вы привели здесь немного раньше нет синхронирзации, только атомарный доступ.
Очередь организуется, как в любоом другом языке. Сама собой через организацию входа и выхода защищаемого блока.
Это скрипт:
На счёт сокращения, типа заменить другими функциями, то не получится. На то он и атомарный доступ. Только одна функция это может в MQL4.Вроде бы нормально работает. Загрузил 6 скриптов с паузами 3000, 2000, 1000, 500, 300, 200. Вот часть лога:
19:58:36 Check_GlobalVariableSetOnCondition() GBPJPY,M1: GBPJPY Start
19:58:37 Check_GlobalVariableSetOnCondition() GBPJPY,M1: GBPJPY End
19:58:37 Check_GlobalVariableSetOnCondition() EURUSD,M1: EURUSD Start
19:58:39 Check_GlobalVariableSetOnCondition() EURUSD,M1: EURUSD End
19:58:39 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD Start
19:58:39 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD End
19:58:39 Check_GlobalVariableSetOnCondition() AUDUSD,M1: AUDUSD Start
19:58:43 Check_GlobalVariableSetOnCondition() AUDUSD,M1: AUDUSD End
19:58:43 Check_GlobalVariableSetOnCondition() GBPUSD,M1: GBPUSD Start
19:58:43 Check_GlobalVariableSetOnCondition() GBPUSD,M1: GBPUSD End
19:58:43 Check_GlobalVariableSetOnCondition() EURUSD,M1: EURUSD Start
19:58:45 Check_GlobalVariableSetOnCondition() EURUSD,M1: EURUSD End
19:58:45 Check_GlobalVariableSetOnCondition() GBPUSD,M1: GBPUSD Start
19:58:46 Check_GlobalVariableSetOnCondition() GBPUSD,M1: GBPUSD End
19:58:46 Check_GlobalVariableSetOnCondition() NZDUSD,M1: NZDUSD Start
19:58:46 Check_GlobalVariableSetOnCondition() NZDUSD,M1: NZDUSD End
19:58:46 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD Start
19:58:46 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD End
19:58:46 Check_GlobalVariableSetOnCondition() NZDUSD,M1: NZDUSD Start
19:58:47 Check_GlobalVariableSetOnCondition() NZDUSD,M1: NZDUSD End
19:58:47 Check_GlobalVariableSetOnCondition() GBPJPY,M1: GBPJPY Start
19:58:48 Check_GlobalVariableSetOnCondition() GBPJPY,M1: GBPJPY End
19:58:48 Check_GlobalVariableSetOnCondition() EURUSD,M1: EURUSD Start
19:58:50 Check_GlobalVariableSetOnCondition() EURUSD,M1: EURUSD End
19:58:50 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD Start
19:58:50 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD End
19:58:50 Check_GlobalVariableSetOnCondition() AUDUSD,M1: AUDUSD Start
19:58:54 Check_GlobalVariableSetOnCondition() AUDUSD,M1: AUDUSD End
19:58:54 Check_GlobalVariableSetOnCondition() NZDUSD,M1: NZDUSD Start
19:58:54 Check_GlobalVariableSetOnCondition() NZDUSD,M1: NZDUSD End
19:58:54 Check_GlobalVariableSetOnCondition() EURUSD,M1: EURUSD Start
19:58:56 Check_GlobalVariableSetOnCondition() EURUSD,M1: EURUSD End
19:58:56 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD Start
19:58:57 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD End
19:58:57 Check_GlobalVariableSetOnCondition() AUDUSD,M1: AUDUSD Start
19:59:00 Check_GlobalVariableSetOnCondition() AUDUSD,M1: AUDUSD End
19:59:00 Check_GlobalVariableSetOnCondition() GBPUSD,M1: GBPUSD Start
19:59:00 Check_GlobalVariableSetOnCondition() GBPUSD,M1: GBPUSD End
19:59:00 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD Start
19:59:01 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD End
Еще раз, на всякий случай для тех кто в танке на подводной лодке и еще в каске. Здесь показан только атомарный доступ. Порядок отработки функций здесь будет - как ветер дунет. В этом коде не обеспечивается равномерного исполнения функций. Поэтому нет гарантии, что какая-то функция не останется за боротом очень долго. Уповать на слуйность в програмировании только от того у процессора частота высокая, это смешно, даже при очень высокой частоте процессора.