ライブラリ: Mutex - WinAPI

 

Mutex - WinAPI:

ОС/EA/MTプロセスなどを同期します。自作のDLLは現在必要とされていません。

作者: o_O

 

これで、異なるフクロウを1つのシステムにリンクさせることが可能になった。)

では、セマフォがなくてもミューテックスが機能することは理解できましたか?

 
セルゲイエフに敬意を表する!
 
Urain:

では、セマフォなしでミューテックスが機能することは理解できましたか?

ニコライ:) ミューテックスはミューテックスだ。CreateMutex

カーネルがどのように関連付けるかはどうでもいい。

これで、ヒープを作ることなく、異なるフクロウを1つのシステムにリンクできる)。

すべてのExpasが1つのコードにあり、チャート上に1つのスレッドがある場合、定義上ミューテックスは必要ない。

異なるスレッドやプロセスを 同期させるために必要なのだ。

 
Urain:

これで、異なるフクロウを1つのシステムにリンクさせることが可能になった。)

では、セマフォなしでミューテックスが機能することは理解できましたか?

セマフォの一種です。

--

アレックス、ありがとう。これでアプリケーションをバインドするのがもっと楽になったよ。

 

このミューテックスが必要なのかどうかがわからない。

例を挙げよう。ファイル・マッピングを使ってメモリ上にファイルを作成します。(https://www.mql5.com/ja/code/818 )

サイズは50バイト。

このファイルをメモリ上で操作するExpert Advisorを100個実行する。すべてのExpert Advisorはこのように動作する。

while(1)
  {
   // メモリ内のファイルから読み込む
   // メモリ内のファイルに書き込む。
  }


50のExpert Advisorはメモリ上のファイルに0を1つだけ書き込み、50のExpert Advisorは1を1つだけ書き込みます。そして、書き込みと読み出しは常に一度に行われる。

Read,Write関数を使う。

もし私がこの部分を正しく理解しているならば、次のような状況が起こり得ます:

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

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

ゼロか1だけでなく、ゼロの一部と1の一部がメモリ上のファイルからダウンロードされる可能性があります。メモリ上の同じファイルをループで読み続け、その変化を待つことのデメリットはありますか?

File Mapping без DLL
File Mapping без DLL
  • www.mql5.com
Мониторинг котировок (пример для маппинга) Пример использования DLL для работы с функциями File Mapping. В данном примере запущенный эксперт создает виртуальный файл в памяти и начинает обновлять в нем котировку символа. При запуске экспертов в других терминалах, эти эксперты открывают созданный файл и аналогично начинают обновлять свои...
 
ミューテックスでスイッチのようなアナログを書くことは可能ですか?