Библиотеки: Mutex - на чистом WinAPI

 

Mutex - на чистом WinAPI:

Синхронизируем процессы ОС/EA/MT и т.д. Никаких самописных DLL. Настало время держать все под своим контролем!

Автор: o_O

 

Это теперь можно связывать разные совы в одну систему не устраивая кучумалу :)

Так понял mutex без семафоров работает?

 
Респект и уважуха коллеге Сергееву за идеи и труд!
 
Urain:

Так понял mutex без семафоров работает?

Николай, :) мютекс это мютекс. сам по себе. ты же видишь как он создается. CreateMutex

то как винда его в ядре ассоциирует нам ведь глубоко побоку.

Это теперь можно связывать разные совы в одну систему не устраивая кучумалу :)

если у тебя все экспы войдут в один код и будет один поток на чарте - то тебе мютексы ваще не нужны по определению.

они нужны для синхронизации разных потоков/процессов.

 
Urain:

Это теперь можно связывать разные совы в одну систему не устраивая кучумалу :)

Так понял mutex без семафоров работает?

Он и есть типа "семафор".

--

Спасибо, Алекс, с этой штукой реально спокойнее связывать приложения.

 

Я не понимаю,  нужен ли мне этот mutex или нет.

Пример. Создаю в памяти файл с помощью File Mapping. ( https://www.mql5.com/ru/code/818)

размером байт  в 50.

Запускаю 100 советников, которые работают с этим файлом в памяти. Все работают примерно так.

while(1)
  {
   // Чтение из файла в памяти
   // Запись в файл в памяти.
  }


  Пусть 50 советников, пишут в файл в памяти только одни нули, а 50 только одни единицы. И запись и чтение осуществляется всегда за раз т.е с использованием только одной

функции Read,Write. 

  Если я правильно понимаю эту часть описания:

Ибо это может привести к непредсказуемым последствиям - один процесс пишет, а второй в это же время читает и принимает некое решение и тоже обновляет эти же данные.

В этой ситуации недописанность данных первым процессом может нежелательным образом сказаться на результате решения второго и, как следствие, привести к их порче.

то возможно ситуация при, которой из файла в памяти могут быть скачаны, не одни нули или единицы, а часть нулей и часть единиц. Или я, что-то не так понял ?  Нет ли, каких то минусов у непрерывного, чтения в цикле одного и того же файла в памяти, в ожидании его изменения ? 

File Mapping без DLL
File Mapping без DLL
  • www.mql5.com
Мониторинг котировок (пример для маппинга) Пример использования DLL для работы с функциями File Mapping. В данном примере запущенный эксперт создает виртуальный файл в памяти и начинает обновлять в нем котировку символа. При запуске экспертов в других терминалах, эти эксперты открывают созданный файл и аналогично начинают обновлять свои...
 
Интересно в как ни будь возможно написать аналог типа switch на мутексах?