【发布时间】:2017-02-11 15:45:36
【问题描述】:
asio 的作者 Christopher Kohlhoff 正在为 C++ 中的执行器开发一个库和提案。到目前为止,他的工作包括repo 和docs。不幸的是,基本原理部分还没有写出来。到目前为止,这些文档给出了一些图书馆所做的例子,但我不觉得我错过了什么。不知何故,这不仅仅是一系列花哨的调用函数。
我在 Google 上找到的所有内容都非常特定于 Java,其中很多都是特定于特定框架的,所以我很难弄清楚这种“执行程序模式”是什么。
在这种情况下,执行者是什么?他们在做什么?什么时候它们会有所帮助的典型例子是什么?执行者之间存在哪些差异?执行者的替代方案是什么?它们如何比较?特别是,似乎与事件循环有很多重叠,其中事件是初始输入事件、执行事件和关闭事件。
在尝试找出新的抽象概念时,我通常会发现理解动机的关键。那么对于执行者来说,我们想要抽象什么,为什么?我们试图使什么通用?如果没有执行者,我们还要做哪些额外的工作?
【问题讨论】:
-
使用重载调用
operator()(... args)运算符? -
@πάνταῥεῖ 我不明白你的评论。
-
嗯,这是表示执行者/函子模式的惯用方式。
-
@πάνταῥεῖ 听起来您正在考虑函数调用运算符的语法。 “执行者”是一种抽象。我想了解可以被视为执行者的对象的一般规则和特征。
-
我认为这就像这篇论文所说的那样:Parallel Algorithms Need Executors | N4406
标签: c++ design-patterns executors