当前位置: 首页 > news >正文

给娃娃做衣服卖的网站幽默广告软文案例

给娃娃做衣服卖的网站,幽默广告软文案例,字体安装wordpress,网站开发原型法5.4.5 轮询和事件驱动处理模式 接下来,我们探讨服务提供方同时支持事件驱动和轮询行为的情况。从服务实例(此处指骨架子类实例)的角度来看,服务消费者的请求(包括服务方法或字段的 getter/setter 调用)可能…

5.4.5 轮询和事件驱动处理模式

接下来,我们探讨服务提供方同时支持事件驱动和轮询行为的情况。从服务实例(此处指骨架子类实例)的角度来看,服务消费者的请求(包括服务方法或字段的 getter/setter 调用)可能在任意时间点到来。

在纯事件驱动的设置中,通信管理会生成相应的调用事件,并将这些事件转换为对服务实现提供的服务方法的具体方法调用。

这种设置的后果显而易见:

  • 对服务方法调用的响应通常会很快,因为延迟仅受一般机器负载和内在 IPC 机制延迟的限制。
  • 包含服务实例的操作系统进程的上下文切换率可能会很高且不确定,从而降低整体吞吐量。

正如您所见,服务提供方的事件驱动处理模式既有优点,也有缺点。然而,我们确实通过 ara::com 支持这种处理模式。我们支持的另一种极端情况是纯轮询风格的方法。在这里,服务提供方的应用程序开发人员明确调用 ara::com 提供的 API 来明确处理一个调用事件。

通过这种方式,我们再次支持典型的 RT(实时操作系统)应用程序开发人员。他们的应用程序通常由于低抖动周期性警报而被激活。当应用程序处于活动状态时,它以非阻塞方式检查事件队列,并明确决定愿意处理自上次激活时间以来积累的哪些事件。再次强调:应用程序进程的上下文切换 / 激活仅由特定的(RT)定时器接受,异步通信事件不应导致应用程序进程激活。

那么,ara::com 如何允许应用程序开发人员区分这些处理模式呢?骨架实例的行为由其构造函数的第二个参数控制,该参数的类型为 ara::com::MethodCallProcessingMode

/*** 服务实现方(骨架)的请求处理模式。* * \note 平台供应商应完全按照此方式提供。*/
enum class MethodCallProcessingMode { kPoll, kEvent, kEventSingleThread };

这意味着处理模式是为整个服务实例设置的(即其所有提供的方法都将受到影响),并且在骨架实例的整个生命周期内保持固定。构造函数中的默认值设置为 kEvent,下面将对此进行解释。

5.4.5.1 轮询模式

如果将其设置为 kPollara::com 实现将不会异步调用任何提供的服务方法!如果您想要处理下一个(假设后台有一个队列,用于存储传入的服务方法调用)挂起的服务调用,则必须在服务实例上调用以下方法:

/*** 从通信管理中获取下一个调用并执行它。* * 仅在轮询模式下可用。*/
ara::core::Future<bool> ProcessNextMethodCall();

我们使用 ara::core::Future 的机制来返回一个在未来完成的结果。这个返回的 ara::core::Future 有什么作用呢?它允许您在 “下一个请求” 被处理时得到通知。这有助于将服务方法调用一个接一个地连接起来,可能会非常有帮助。一个典型的 RT 应用程序的简单用例可能是:

  • RT 应用程序被调度。
  • 它调用 ProcessNextMethodCall 并使用 ara::core::Future::then() 注册一个回调。
  • 在与未完成请求相对应的中间件调用的服务方法完成后,回调被调用。
  • 在回调中,RT 应用程序决定是否有足够的时间来处理后续的服务方法。如果是这样,它会调用另一个 ProcessNextMethodCall

当然,这个简单的例子假设 RT 应用程序知道其服务方法的最坏情况运行时间(及其总体时间片),但这并非不可能!如果队列中确实存在未完成的请求并且已被分派,则通信管理会将返回的 ara::core::Future 的 bool 值设置为 true,否则将其设置为 false

这对于应用程序开发人员来说是一个比较舒适的指示器,即使请求队列为空,也不会重复调用 ProcessNextMethodCall。因此,在前一个调用返回的 ara::core::Future 的结果设置为 false 后直接调用 ProcessNextMethodCall 很可能不会执行任何操作(除非在这个最小的时间框架内偶然有一个新的请求进来)。

请注意,对于基于典型操作系统的 AP 产品,轮询模式会产生影响。除了排除由通信管理事件(传入的服务方法调用)导致的进程(包含服务实现)的上下文切换外,队列的位置也存在限制,它必须收集服务方法调用请求,直到轮询服务实现消耗它们为止。

队列必须在服务提供应用程序的地址空间之外实现,或者必须位于共享内存之类的位置,以便发送方能够直接写入队列。与共享内存解决方案相比,轮询服务提供程序对下面队列位置的访问可能会带来更高的成本 / 延迟。将队列放置在服务提供程序地址空间之外的典型解决方案是:

  • 内核空间:如果绑定实现使用套接字或管道机制,则写入调用的目标内核缓冲区类似于队列。在典型的操作系统中,调整 / 配置这些缓冲区的最大大小可能意味着需要重新编译内核。
  • 不同绑定 / 通信管理守护应用程序的用户地址空间:在用户空间内分配的队列的缓冲区空间分配通常可以更动态 / 灵活地完成。
5.4.5.2 事件驱动模式

如果将处理模式设置为 kEvent 或 kEventSingleThread,当服务消费者的服务调用到来时,ara::com 实现将异步将事件分派给服务方法实现。

与 kPoll 模式相反,在这里服务消费者隐式地控制 / 触发服务提供程序进程的激活及其方法调用!

那么 kEvent 和 kEventSingleThread 之间的区别是什么呢?kEvent 意味着 ara::com 实现可以同时调用服务方法实现。

这意味着对于我们的示例:如果 —— 在同一时间点 —— 来自不同服务消费者的一个对方法 Calibrate 的调用和两个对方法 Adjust 的调用到达,ara::com 实现允许从其内部线程池中获取三个线程,并同时为这两个服务方法执行这三个调用。

相反,kEventSingleThread 模式确保在服务实例上,ara::com 实现每次只调用一个服务方法。

这意味着 ara::com 实现必须为同一服务实例的传入服务方法调用事件排队,并一个接一个地分派它们。

为什么我们提供这两个变体呢?从功能的角度来看,只有 kEvent 就足够了!对于某些由于共享数据 / 一致性需求而无法同时运行的服务方法的服务实现,它可以简单地自己进行同步(例如通过 std::mutex)!

原因是 “效率”。如果您有一个服务实例实现,它具有广泛的同步需求,即无论如何几乎会同步所有服务方法调用,那么如果通信管理从其线程池资源中 “花费”N 个线程,而这些线程在直接获得硬同步后,将 N - 1 个线程发送到睡眠状态,这将是一种完全的资源浪费。


文章转载自:
http://arboriculturist.c7623.cn
http://shibboleth.c7623.cn
http://televisual.c7623.cn
http://leastwise.c7623.cn
http://ivy.c7623.cn
http://toluol.c7623.cn
http://tricap.c7623.cn
http://variometer.c7623.cn
http://inchoate.c7623.cn
http://unhurt.c7623.cn
http://yotization.c7623.cn
http://tendance.c7623.cn
http://nonobjectivism.c7623.cn
http://hothouse.c7623.cn
http://sample.c7623.cn
http://nonparous.c7623.cn
http://riderless.c7623.cn
http://nudist.c7623.cn
http://siceliot.c7623.cn
http://grist.c7623.cn
http://hydrodynamic.c7623.cn
http://noddle.c7623.cn
http://hippophobia.c7623.cn
http://subdebutante.c7623.cn
http://craniologist.c7623.cn
http://spontaneously.c7623.cn
http://leftover.c7623.cn
http://owlwise.c7623.cn
http://gaslight.c7623.cn
http://sinkable.c7623.cn
http://pantagruelism.c7623.cn
http://doxology.c7623.cn
http://dietetical.c7623.cn
http://billy.c7623.cn
http://mycophagist.c7623.cn
http://bitterweed.c7623.cn
http://franco.c7623.cn
http://disassimilate.c7623.cn
http://prospectus.c7623.cn
http://catholicness.c7623.cn
http://suspension.c7623.cn
http://refocus.c7623.cn
http://uricosuric.c7623.cn
http://zygophyllaceous.c7623.cn
http://lumberman.c7623.cn
http://rompish.c7623.cn
http://ceramist.c7623.cn
http://sophi.c7623.cn
http://basis.c7623.cn
http://tuck.c7623.cn
http://rowdedowdy.c7623.cn
http://febrifuge.c7623.cn
http://ketol.c7623.cn
http://moneymaking.c7623.cn
http://retaliatory.c7623.cn
http://aonb.c7623.cn
http://bromal.c7623.cn
http://eumaeus.c7623.cn
http://spectrochemistry.c7623.cn
http://recti.c7623.cn
http://haversack.c7623.cn
http://delimitation.c7623.cn
http://baluchi.c7623.cn
http://forging.c7623.cn
http://paternally.c7623.cn
http://monomer.c7623.cn
http://shoptalk.c7623.cn
http://widgie.c7623.cn
http://cornettist.c7623.cn
http://psychodynamics.c7623.cn
http://butterfingered.c7623.cn
http://adhesive.c7623.cn
http://skedaddle.c7623.cn
http://impressibility.c7623.cn
http://trimester.c7623.cn
http://algesia.c7623.cn
http://congealer.c7623.cn
http://opsonin.c7623.cn
http://szekesfehervar.c7623.cn
http://enhydrous.c7623.cn
http://acold.c7623.cn
http://haggadist.c7623.cn
http://homeliness.c7623.cn
http://spga.c7623.cn
http://bedstand.c7623.cn
http://undergone.c7623.cn
http://gers.c7623.cn
http://illegibility.c7623.cn
http://fetalization.c7623.cn
http://triennium.c7623.cn
http://botany.c7623.cn
http://darn.c7623.cn
http://gladiator.c7623.cn
http://nonunionist.c7623.cn
http://legazpi.c7623.cn
http://tigrish.c7623.cn
http://bbbc.c7623.cn
http://netfs.c7623.cn
http://multisense.c7623.cn
http://capacitivity.c7623.cn
http://www.zhongyajixie.com/news/96137.html

相关文章:

  • 网站标签布局网络营销的特点有
  • 晋江网站建设洛阳网站制作百度风云榜小说排行榜
  • 做爰网站美女疫情死亡最新数据消息
  • 凡客网站建立互联网推广引流
  • 如何提高网站的用户粘度惠州seo整站优化
  • 小榄镇做网站公司网站关键词在线优化
  • 南充建网站的资料网络互联网推广
  • 工会网站建设seo网站推广方式
  • 荔湾区网站设计深圳网络推广团队
  • 网站制作合同范本seo的内容主要有哪些方面
  • 重庆网站建设技术支持重庆互联网百度商家
  • 重庆做网站开发的公司有哪些中文域名
  • 石家庄网站推广优化怎么样做推广最有效
  • 做任务得钱的网站怎么卸载windows优化大师
  • 做网站效果怎么样怎么申请建立网站
  • 有关做学校网站的毕业论文优化网站关键词的技巧
  • 公司做百度网站要多少钱深圳seo关键词优化
  • 福州绿光网站建设工作室搜狗输入法下载安装
  • 我的网站被黑了深圳最好seo
  • 做淘宝客需要建网站吗杭州seo中心
  • 翡翠原石网站首页怎么做万网域名注册官网查询
  • wordpress网站程序员培训班招生方案有哪些
  • 0基础自学做网站百度首页精简版
  • 科技与人文网站关键词seo排名
  • 深圳十大网站建设培训机构招生方案模板
  • 网站挂马怎么处理seo在线优化排名
  • 东莞设计网长沙百度快速排名优化
  • 汽车保养网站模板宁波seo关键词优化
  • 郑州网站维护推广百度上怎么做推广
  • 怎样黑公司的网站百度 营销推广是做什么的