Programmation asynchrone et multithread dans MQL - page 20

 
Реter Konow:

Qu'est-ce qui vous fait penser que quelque chose est inefficace ou ne fonctionne pas pour moi ? Allez sur mon profil et voyez comment les choses fonctionnent. C'est parce qu'il fonctionne et évolue que je suppose que le multithreading sera bientôt nécessaire.

Super ! Pourquoi avez-vous besoin du multithreading ? - Je ne sais même pas encore comment l'expliquer, j'ai écrit plus haut que ça fait mal, j'ai écrit plus haut que c'est un coup dans la jambe.... )))

ce n'est pas un problème de mettre une tâche dans un fil séparé, le problème est de faire la tâche inverse - de tout rassembler en un seul endroit ! - Et peu importe le langage dans lequel cette tâche sera exécutée, il existe des modèles de conception pour les tâches asynchrones, ils facilitent le travail, mais avec les applications multi-threads, le contrôle de ces threads est un casse-tête pour le développeur, si vous ne vérifiez pas l'état de préparation des calculs - vous obtenez un bug qui apparaîtra à un moment inconnu, vous ne supprimez pas les threads inutilisés, mais vous en créez un nouveau à chaque fois - cela consomme des ressources système...


Ou pensez-vous que votre code écrit pour un seul fil dans MQL peut devenir multithread ? - Il suffit d'ajouter la directive #property multithreading en haut et voilà ! )))

 
Igor Makanu:

pourquoi avez-vous besoin du multithreading ? - Je ne sais même pas encore comment l'expliquer, j'ai écrit que ça fait mal, j'ai écrit plus haut que c'est un coup dans la jambe... )))

ce n'est pas un problème de mettre une tâche dans un fil séparé, le problème est de faire la tâche inverse - de tout rassembler en un seul endroit ! - et le langage dans lequel cette tâche sera exécutée n'a pas d'importance, il existe des modèles de conception pour les tâches asynchrones, ils facilitent le travail, mais avec les applications multi-threads le contrôle de ces threads est un casse-tête pour le développeur, si vous ne vérifiez pas l'état de préparation des calculs - vous obtenez un bug qui apparaîtra à un moment inconnu, vous ne supprimez pas les threads inutilisés, mais vous en créez un nouveau à chaque fois - cela consomme des ressources système...


Ou pensez-vous que votre code écrit pour un seul fil dans MQL peut devenir multithread ? - Il suffit d'ajouter la directive #property multithreading en haut et voilà ! )))

Comprenez-vous qu'il est physiquement impossible de tout faire en un seul fil ? Oui, il y aura des difficultés dans le code, des bogues et de nouveaux problèmes. Mais il y a des cas où il ne peut en être autrement. Comment calculer une visualisation tridimensionnelle, communiquer avec le serveur et effectuer des transactions parallèles dans un seul et même fil ? Donc, nous avons calculé toute la visualisation, puis reçu/envoyé un message au serveur, puis calculé la position de queue, puis fait beaucoup d'autres calculs, et tout cela à tour de rôle ? Sérieusement... Que se passe-t-il si l'une des opérations se bloque, ou si la valeur pendant la visualisation dépasse les limites du tableau? Un crash total de l'ensemble ?

Je comprends qu'il y a des difficultés associées au multithreading. Mais, je veux évoluer, et j'essaie d'obtenir un espace à l'avance. Et je ne suis pas le seul.

 
Реter Konow:

Je comprends qu'il y a des difficultés associées au multithreading. Mais, je veux évoluer, et j'essaie d'obtenir un espace à l'avance. Et je ne suis pas le seul.

N'avez-vous pas d'autres directions de développement que MKL ? C'est un développement très unilatéral que vous envisagez pour vous-même).

 
Yuriy Asaulenko:

N'y a-t-il pas d'autres domaines de développement que le MCL ? C'est un développement très unilatéral que vous prévoyez pour vous-même).

Eh bien, si seulement pour vendre des gâteaux)).

Les autres niches sont occupées et tout y est labouré. La seule chose que je pourrais dire, c'est qu'il s'agit d'un nouveau mot dans les questions d'IA, mais vous devez vous développer pour cela ; sinon, toutes les niches logicielles sont occupées par des géants et il y a une mer de concurrents. Au moins, il reste un peu d'espace ici.

 
Реter Konow:

Eh bien, si seulement pour vendre des gâteaux.)

Les autres niches sont occupées et tout y est labouré. Pour le reste, toutes les niches sont occupées par des géants du logiciel et il y a beaucoup de concurrents. Au moins, il reste un peu d'espace ici.

Pourquoi es-tu occupé ? Vous pouvez écrire des TC en C++/C#, Java et Python sont également à votre service). Il y a beaucoup plus de possibilités que pour la LMC. Et, si vous voulez vendre, vous avez beaucoup plus à faire avec le marché. Et tu te mets dans le cadre rigide de MKL et Market. Pourquoi ? Le reste du monde est tout aussi beau).

 
Yuriy Asaulenko:

Pourquoi sont-ils occupés ? Vous pouvez écrire TC en C++/C#. Il y a beaucoup plus de possibilités que dans MKL. Et si vous voulez vendre, il y a beaucoup plus à vendre.

Il n'y a pas de place ici. Besoin d'une interface graphique ? Vous êtes les bienvenus !)) Besoin de fonctions ? - Voici les bibliothèques. Tout ce que vous voulez, vous l'avez. Je ne suis pas intéressé par le CT lui-même. Je suis intéressé par la création d'un nouveau, et comment le créer, s'il a déjà été créé ? Et voici une niche intacte. "Une île de sauvages" au sens figuré). Tous les logiciels sont faibles par rapport à leurs homologues dans d'autres langues. Vous pouvez vous développer ici. Et les affaires peuvent se faire...
 
Реter Konow:
Il n'y a pas de place pour cela. Avez-vous besoin d'une interface graphique ? Oui, s'il vous plaît !)) Si vous avez besoin de fonctions, voici les bibliothèques. Tout ce à quoi vous pensez, vous l'avez. Je ne suis pas intéressé par le CT lui-même. Je suis intéressé par la création d'un nouveau, et comment le créer, s'il a déjà été créé ? Et il n'a pas encore été créé. Il s'agit d'un créneau inexploité. Tous les logiciels sont faibles par rapport à leurs homologues dans d'autres langues. Vous pouvez vous développer ici. Et les affaires peuvent se faire...

Vous avez tort. Vous ne pouvez pas faire des affaires ici. Vous pouvez collecter des centimes sur le marché ou en tant que freelance, mais cela ne sert à rien.

SZY Pourquoi devrais-je, hypothétiquement, me procurer votre interface graphique, etc., alors qu'elle peut être écrite en deux temps trois mouvements en Sharp ou en Python ? De plus, l'utilisateur ne se soucie pas de savoir en quoi c'est écrit, il a besoin de la fonctionnalité, pas des spécificités de la mise en œuvre. C'est-à-dire qu'un programmeur n'a pas besoin de tels produits, mais un utilisateur s'en moque, il se soucie du prix, et il est certainement moins cher et plus fonctionnel dans Sharp.

 
Yuriy Asaulenko:

Vous avez tort. Vous ne pouvez pas faire des affaires ici. Vous pouvez collecter des centimes sur le marché ou en tant que freelance, mais cela ne sert à rien.

Et je m'en fiche. Ce qui m'importe, c'est qu'au moins ici, je peux dire un nouveau mot et être le premier. Et dans le monde extérieur, je serai le premier 1000000001.)) Ce n'est pas mon destin.
 
Merde. Si vous voulez du multithreading, les langages "matures" sont votre aide. Eh bien, le multithreading ne semble pas bon dans mql. CopyRate et CopyBuffer asynchrones seraient bien, mais l'analogue de std::thread dans mql est inutile. IMHO.
 
Vladimir Simakov:
Mec, si tu veux du multithreading, les langages "matures" t'aident. Mais le multithreading dans mql ne semble pas bon. CopyRate et CopyBuffer asynchrones seraient bien, mais l'analogue de std::thread dans mql est inutile. IMHO.

Ils ne peuvent pas être "adultes". Avec les "adultes", ils ne sont pas autorisés à entrer sur le marché. MQL seulement et pour toujours.