MQL中的异步和多线程编程 - 页 9

 
Roman:

这只是一个猜测,我还没有查到它用在哪里。
我搜索了一下有哪些语言使用EventLoop,是Py、JS、Qt,可能还有一些。
问题的关键不是在哪里应用,而是在技术本身不使用线程。
那么,为什么不借用这个技术,在mql中实现你的EventLoop呢?

你没有检查?你能测试一下吗?

你如何想象没有线程的异步?你也能把你的裤子套在头上吗?

 
Dmitry Fedoseev:

你没有检查?你能测试一下吗?

你如何想象没有线程的异步?你也能把你的裤子套在头上吗?

开发商更清楚,我想他们知道我的意思。
可能是的,我说错了,线程池是用来做的,回调是用来做的。
而这样一来,在一个线程中写异步代码的单线程就实现了,而且每个请求都被视为一个事件。

在代理商的测试中,我认为线程池是被使用的,只是对于进程来说,它的行为非常相似。
由于这个原因,该技术本身已经存在于mql中,只是没有为用户开发,在编写异步代码时。

下面是对Node.js中EventLoop工作原理的理解,请参考
下面是EventLoop在asyncio中的工作原理

 
Roman:

...
下面是对EventLoop在Node.js链接 中的工作原理的深入了解
下面是EventLoop在asyncio中的工作原理

是的,我已经意识到,你和所有那些异步编程高手都在同一条线上,知道如何把裤子套在头上。

***

我更喜欢另一篇关于EventLoop的文章。我引用一下。"因为大多数现代内核是多线程的......" 没有再读下去--这就够了。

 
出于这个原因,我希望开发者能听到这个建议,并开发他们自己的EventLoop。
然后,Metatrader终端将撕裂每个人和所有东西,而且肯定不会是平等的!"。
 
Roman:
这就是为什么我希望开发者能听到这个建议,并开发他们自己的EventLoop。
然后,Metatrader终端将撕裂每个人和所有东西,它不会是无与伦比的!

忘掉EventLoop吧。胡说八道。告诉我如何把裤子套在头上。

***

阅读一下,讨论如何获得有关EventLoop问题的面试。看起来是某种蟒蛇和J-喷头的癖好。 这与现实毫无关系。

***

罗马 人。

...

下面是对EventLoop在Node.js链接 中的工作原理的深入了解
...

让我们来读读这篇文章。在开始时,"NodeJS是一个运行在用C++编写的平台上的单线程应用程序,这个平台使用多线程来同时执行任务"。

继续阅读 "作为一个C++程序,它支持多线程,所以这里的请求将由多个线程处理。NodeJS还支持多进程,这意味着它们可以在一个核心上执行"。

问题来了:"但这篇文章的作者在写这篇文章时是怎么想的?

 
Dmitry Fedoseev:

我更喜欢另一篇关于EventLoop的文章。我引用一下。"因为大多数现代内核是多线程的......" 没有再读下去--这就够了。

重点是允许用户在单线程中编写异步代码,因为专家/脚本在单线程中工作。
而在荒野中的终端将已经开发的工作,不提供给任何人从EventLoop以外的地方!
这对你来说可能是无稽之谈,我有一个用Py编写的服务器,使用EventLoop
而且一次异步处理一千多个任务,这是你的错觉,尽管每个人都认为Py很慢。
异步写作,你就会飞起来,我不在头上穿裤子,只要使用正确的技术。

 

关于这个问题的另一篇文章:"异步代码从主程序流中移除一个阻塞操作,使其继续运行,但在其他地方,处理程序可以继续进行。简单地说,主 "进程 "把一个任务,传递给另一个独立的 "进程"。":)

不,原来这句话是出自这篇文章。
Roman:

...
以下是EventLoop在asyncio链接 中的工作方式

你去了 - 程序继续在其他地方运行...而处理者则留在这里。

难道你还不明白,这篇文章的作者在他/她所讲的事情上一点技巧都没有吗?他应该读一读90年代的《Windows基础知识》之类的书。

他是否在他的文章中给了处理器神秘的力量,任何机会?

 
Roman:

...只是使用正确的技术。

如果你还明白你在用什么。如果所有东西都呆在一个线程中(如果可能的话),就不会有速度的提高。 速度的提高是以创建一个进程并由另一个核心处理为代价的。

罗马 人。

...
而一次异步处理一千多个任务,这就是胡说八道,而大家都认为Py很慢。
...

同时处理的任务不可能多于处理器中的核心数量。

 
Dmitry Fedoseev:

关于这个问题的另一篇文章:"异步代码从主程序流中移除一个阻塞操作,使其继续运行,但在其他地方,处理程序可以继续进行。简单地说,主 "进程 "把一个任务,传递给另一个独立的 "进程"。":)

不,事实证明,这句话是来自这篇文章。

你去了 - 程序继续在其他地方运行...而处理者则留在这里。

难道你还不明白,这篇文章的作者在他/她所讲的事情上一点技巧都没有吗?他应该读一读90年代的《Windows基础知识》之类的书。

他是否在他的文章中给了处理器神秘的力量,任何机会?

线程池或Coroutines就是用于此目的,你只是没有研究过这项技术,没有理解整个要点。
我不想在这个问题上与你争论,这项技术已经被世界上的公司成功地应用于其他语言和引擎。
而你在文章中发现的无稽之谈,显然你还没有意识到这一切是如何在一条线上运作的))。

 
Roman:

这就是Thread Pool或Coroutines的用途,你只是没有研究过给定的技术,没有理解整个要点,没有理解到最后。
我不想在这个问题上与你争论,这项技术已经被世界上的公司成功地应用于其他语言和引擎。
而你在文章中发现的无稽之谈,显然你还没有意识到这一切是如何在一条线上运作的))。

(笑): 哇!当局的压力是在...也是在外面的某个地方,在外面的某个地方运行该代码))。神圣的力量不适用吗?

"线程池 "这一表述本身就意味着有多个线程存在。

要研究技术......你应该首先掌握常识。