boost::asio:"strand"类型的同步原语有什么名称吗?
boost::asio: Is there any name for the "strand" type of synchronization primitive?
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一样。
相关文章:
- 通过boost asio iostream下载大文件的最快方法是什么?
- asio::io_context 和 asio::thread_pool 有什么区别?
- 调用boost.asio的异步函数时,线程是什么时候创建的
- 在 boost::asio 中发布和调度有什么区别?
- C++ 关闭Boost ASIO SSL套接字的最佳方法是什么?
- boost::asio::io_service::run() 实际上做了什么
- 当TCP TX缓冲区填满时,boost::asio中会发生什么
- 在Boost库asio示例中,处理程序分配之前的[this,self]意味着什么
- boost.asio和目前的网络TS之间最大的区别是什么
- boost::asio::ssl::stream<boost::asio::ip::tcp::socket>::shutdown() 做什么?
- boost::asio:"strand"类型的同步原语有什么名称吗?
- boost asio serial_port_service和serial_port有什么区别
- strand在boost asio中的优势是什么?
- 什么处理程序增强.Asio在幕后执行
- Boost::asio这种奇怪的编码风格是什么
- 使用asio::async_read的正确模式是什么?
- Boost ASIO -什么是异步
- 安全断开asio SSL套接字的正确方法是什么?
- 什么是boost::asio::ssl::context::load_verify_file以及如何使用它
- boost::asio::ip::tcp::socket::cancel和socket::close之间有什么不同