Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Es scheint, dass der besondere Unterschied zwischen Asynchronie und Multithreading aus demselben Bereich stammt wie das Problem der Zeiger-/Referenzunterschiede, das einige Leute plagt.
Die Asynchronität wird durch einen separaten Thread realisiert, und es ist nicht so wichtig, ob dieser Prozess vom Prozessor oder einem anderen Gerät bereitgestellt wird. Die Erstellung eines Prozesses impliziert seine Asynchronität, da er parallel existiert.
Die Asynchronität wird im selben Programmausführungsthread durch EventLoop implementiert, aber wie EventLoop implementiert wird, ist das Vorrecht des Entwicklers, wie er es implementiert.
Die gleichen Standard-Handler in mql, zum Beispiel OnTimer arbeitet in seiner eigenen Schleife, und dies ist eine Art von EventLoop,
Wenn Sie einen separaten Handler für asynchrone Methoden erstellen möchten, werden alle Aufgaben in einer asynchronen Schleife ausgeführt.
Die Asynchronität wird im gleichen Programmausführungs-Thread durch EventLoop implementiert, aber wie EventLoop implementiert wird, ist das Vorrecht der Entwickler, wie sie es implementieren.
Die gleichen Standard-Handler in mql, zum Beispiel OnTimer arbeitet in seiner eigenen Schleife, dies ist eine Art EventLoop,
Wenn Sie einen separaten Handler für asynchrone Methoden erstellen möchten, werden alle Aufgaben in einer asynchronen Schleife ausgeführt.
Entschuldigung, wo ist Asynchronität über EventLoop implementiert?
So etwas wie EventLoop kann man jetzt selbst machen, Terminalentwickler werden hier überhaupt nicht gebraucht.
Entschuldigung, wo ist Asynchronität über EventLoop implementiert?
So etwas wie EventLoop können Sie jetzt selbst machen, die Terminalentwickler werden hier überhaupt nicht gebraucht.
EventLoop ist in asyncio implementiert, und wie ich denke, wird das gleiche Prinzip in anderen asynchronen Bibliotheken verwendet.
Sogar WinAPI, so wie ich es verstehe, verwendet das Ereignisprinzip für Asynchronität.
Wir können derzeit keinen vollwertigen asynchronen Modus mit Standardwerkzeugen implementieren,
Der Grund dafür ist, dass z. B. der OnTimer-Handler die Task-Ausführung nicht steuert und stattdessen die Schleife sequentiell ausführt.
Das heißt, der Handler verfügt nicht über den Mechanismus der asynchronen Aufgabenausführung.
Googeln Sie doch mal den Begriff "Deadlock"!
In MQL5 wird das Hinzufügen von Threads das Testsystem zerstören und die gesamte Agentenwolke wird abstürzen.
Eine Umgehung dieser Einschränkung ist mit DLLs möglich. Wenn Sie nicht C#, C++, C oder Python lernen wollen, ist das Ihr Problem. In der heutigen Welt muss ein Programmierer mehrere Sprachen beherrschen, um das richtige Werkzeug für eine bestimmte Aufgabe auszuwählen.
Diejenigen, die 1C kennen, gelten nicht als Programmierer. Das Gleiche gilt für MQL5.
Googeln Sie doch mal den Begriff "Deadlock"!
In MQL5 wird das Hinzufügen von Threads das Testsystem zerstören und die gesamte Agentenwolke wird abstürzen.
Eine Umgehung dieser Einschränkung ist mit DLLs möglich. Wenn Sie nicht C#, C++, C oder Python lernen wollen, ist das Ihr Problem. In der heutigen Welt muss ein Programmierer mehrere Sprachen beherrschen, um das richtige Werkzeug für eine bestimmte Aufgabe auszuwählen.
Diejenigen, die 1C kennen, gelten nicht als Programmierer. Das Gleiche gilt für MQL5.
Googeln Sie doch mal den Begriff "Deadlock"!
In MQL5 wird das Hinzufügen von Threads das Testsystem zerstören und die gesamte Agentenwolke wird abstürzen.
Eine Umgehung dieser Einschränkung ist mit DLLs möglich. Wenn Sie nicht C#, C++, C oder Python lernen wollen, ist das Ihr Problem. In der heutigen Welt muss ein Programmierer mehrere Sprachen beherrschen, um das richtige Werkzeug für eine bestimmte Aufgabe auszuwählen.
Diejenigen, die 1C kennen, gelten nicht als Programmierer. Das Gleiche gilt für MQL5.
Während der Prüfung können alle Aufgaben nacheinander gelöst und die Ergebnisse zu bestimmten Zeitpunkten zurückgegeben werden (Sie können im Prüfgerät warten). Man kann nicht nur, man muss, damit es der Realität entspricht.
Ich frage mich, was die 1C-Programmierer darüber denken? Sind sie an der Meinung anderer interessiert?
Wenn Multi-Threaded MQL-Programm bricht das Testsystem, dann welchen Unterschied macht es, ob es durch eine DLL oder eine reguläre angeschlossen ist? In jedem Fall müssen Sie sich zwischen Testen und Multithreading entscheiden. Aber es ist besser, innerhalb von MQL zu wählen, denn die Integrität ist ein Plus für das Programm.
Wenn ein MQL-Programm mit mehreren Threads das Testsystem zerstört, welchen Unterschied macht es dann, ob es über eine DLL oder direkt verlinkt ist? In jedem Fall müssen Sie sich zwischen Testen und Multithreading entscheiden. Aber es ist besser, innerhalb von MQL zu wählen, denn die Integrität ist ein Plus für das Programm.
Es gibt einen Unterschied. DLLs sind in der Cloud nicht erlaubt. Und die DLLs selbst sind von Anfang an deaktiviert. Wenn Sie die Berechtigung für DLLs aktivieren, geben Sie die Verantwortung für die sichere Codeausführung ab.
EventLoop ist in Asyncio implementiert, und ich glaube, dass das gleiche Prinzip auch in anderen asynchronen Bibliotheken verwendet wird.
...
Andere asynchrone Bibliotheken verwenden dieses Prinzip nicht.
Andere asynchrone Bibliotheken verwenden dieses Prinzip nicht.
Das war nur eine Vermutung, ich habe nicht überprüft, wo es sonst noch verwendet wird.
Gegoogelt, welche Sprachen verwenden EventLoop, es ist Py, JS, Qt, wahrscheinlich einige mehr.
Es geht nicht darum, wo sie angewendet wird, sondern um die Technik selbst, ohne dass Fäden verwendet werden.
Warum also nicht die Technologie ausleihen und in mql Ihren EventLoop implementieren?