boost::asio:"strand"类型的同步原语有什么名称吗?

boost::asio: Is there any name for the "strand" type of synchronization primitive?

本文关键字:什么 asio strand 类型 boost 同步原语      更新时间:2023-10-16

boost::asio库提供了一个有趣的同步模型,使用"链"序列化对通常需要锁的资源的访问。这通过实质上将每个锁操作都变成一个队列来提高并行性。

搜索"strands"只会产生与asio相关的结果,尽管它们看起来对多线程非常有用。我还缺少其他术语吗?

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

我不知道构造的官方名称。

基于Boost.Asio的提案(N2175-TR2的网络图书馆提案)记录了strand类,但没有引用任何相关材料。此外,英特尔编译器文档在其执行模型中引用了strand,将其定义为"没有任何并行控制结构的任何指令序列"。

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