程序库: Mutex - WinAPI

 

Mutex - WinAPI:

同步 ОС/EA/MT 过程等等。现在不需要任何自制的 DLL。

作者: o_O

 

现在,我们可以将不同的猫头鹰连接到一个系统中,而无需制作 kuchumala :)

这么说,你明白没有 semaphores 的 mutex 也能工作了?

 
尊重同事谢尔盖耶夫的想法和劳动!
 
Urain:

所以你明白没有 semaphores 的 mutex 也能工作?

尼古拉,:) mutex 本身就是 mutex,你可以看到它是如何创建的。创建互斥

我们并不关心内核如何关联它。

现在,您可以将不同的猫头鹰连接到一个系统中,而不必弄得一团糟:))

如果所有 expas 都在一个代码中,一个线程在图表上,那么从定义上讲,您就不需要互斥。

您需要它们来同步不同的线程/进程

 
Urain:

现在,我们可以将不同的猫头鹰连接到一个系统中,而无需制作 kuchumala :)

那么你明白 mutex 在没有 semaphores 的情况下也能工作了吗?

它是一种信号。

--

谢谢 Alex,有了它,绑定应用程序就更轻松了。

 

我不知道我是否需要这个互斥器。

举个例子。我使用文件映射在内存中创建一个文件。(https://www.mql5.com/zh/code/818 )

文件大小为 50 字节。

我运行了 100 个 Expert Advisors,它们都在内存中使用该文件。它们都是这样工作的。

while(1)
  {
   // 读取内存中的文件
   // 写入内存中的文件。
  }


让 50 个 "智能交易系统 "只向内存中的文件写入一个 0,50 个只写入一个 1。写入和读取总是一次性完成,即只使用一个

读、写函数。

如果我对这部分描述理解正确的话:

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

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

有可能从内存中的文件下载的不仅是 0 或 1,而是部分 0 和部分 1。在内存中循环读取同一文件并等待其变化是否有任何弊端?

File Mapping без DLL
File Mapping без DLL
  • www.mql5.com
Мониторинг котировок (пример для маппинга) Пример использования DLL для работы с функциями File Mapping. В данном примере запущенный эксперт создает виртуальный файл в памяти и начинает обновлять в нем котировку символа. При запуске экспертов в других терминалах, эти эксперты открывают созданный файл и аналогично начинают обновлять свои...
 
是否有可能编写类似于互斥开关的程序?