首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多线程和事件驱动

多线程和事件驱动
EN

Software Engineering用户
提问于 2016-07-04 19:32:30
回答 1查看 724关注 0票数 1

我在一次面试中遇到了这个问题,我想确认多线程在这里没有增加任何价值。

案件:

  • 你正在写信给一位经纪人购买股票。
  • 代理由一组股票初始化,当股票达到一定价格时购买。
  • 单独(范围外)服务监视市场,并在pice更改时调用代理上的回调(代理实现提供回调方法的接口)。
  • 回调可以被你不关心的股票调用,当你关心的股票被调用时,你需要检查价格是你想要购买的价格。
  • 当您确定应该购买时,您将调用一些外部的范围外服务。
  • 代理将从创建它的某个引擎异步运行。
  • 当所有的股票(以预期的价格)都被买下时,经纪人就关闭了。
  • 代理中的引擎超出了作用范围。

我看不出代理异步的好处。

EN

回答 1

Software Engineering用户

发布于 2016-07-04 19:43:04

我从您的声明中了解到,在这种情况下,代理是在一个单独的线程中异步运行的。

想象一下,如果代理同步执行会发生什么情况:

  • 监视服务将调用代理并等待代理完成。
  • 同时,它不再监视任何东西。
  • 也许它也会错过一个好机会,因为当服务在等待代理商的时候,价格下降了,后来又上涨了。
  • 也许监控服务为几个为不同客户运行的代理服务,多个事件监视相同的股票。这些其他代理人将被搁置,失去机会(客户要求平等待遇)。

异步代理允许监视服务继续监视,而不被卡住。即使第一次购买还没有完成,监视服务也可以在价格上涨之前(或者如果有一个代理,至少不会错过某个价格的命中)从低价(如果几个代理同时运行的情况下)调用一个新的购买。

还请注意,在多个代理的情况下,每个代理还可以等待与注册购买的事务系统的连接。同步连接将进一步降低监视系统的速度。使用异步设计,等待代理不会传播延迟。因此,最终,您肯定也会看到更高的吞吐量。

所以是的,异步多线程在这里是一个真正的好处。它是一个复杂系统的反应性的关键,无论它是用于用户界面还是交易系统

票数 3
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/323964

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档