3

boost::asio 库提供了一个有趣的同步模型,它使用“strands”来序列化对通常需要锁的资源的访问。这通过本质上将每个锁定操作变成一个队列来增加并行性。

搜索“strands”只会产生关于 asio 的相关结果,尽管它们看起来是一个非常有用的多线程原语。还有其他我想念的术语吗?

链接到 asio 链文档: http: //www.boost.org/doc/libs/1_54_0/doc/html/boost_asio/reference/io_service__strand.html

4

2 回答 2

1

I am not aware of an official name for the construct.

The proposal based on Boost.Asio (N2175 - Networking Library Proposal for TR2) documents the strand class, but does not reference any relevant material. Also, the Intel compiler documentation makes a few references to strand in its execution model, defining it as "any sequence of instructions without any parallel control structures."

于 2013-08-22T17:13:58.590 回答
0

我已经开始在 iOS 和 Mac OS X 领域进行一些编程,它们具有与 Grand Central Dispatch 中称为串行调度队列的链类似概念。任务按照它们添加到队列中的顺序执行,就像一个链一样。同样,执行任务的线程也没有定义,就像 asio 多线程调用时一样。io_service::run()

于 2013-10-02T03:38:51.723 回答