Boost.Aiso概述 基本原理

来源:互联网 发布:美萍进销存软件客服 编辑:程序博客网 时间:2024/06/11 13:01

基本原理

大多数程序与外面的世界交互,都使用某种方式,无论是通过文件、 网络、 串行电缆或控制台。有时,带网络连接的情况一样,单个 I/O 操作可以花很长的时间才能完成。这对应用程序开发特殊挑战。

Boost.Asio 提供的工具来管理这些长时间运行的操作,而无需程序使用基于线程和显式锁定的并发模型。

Boost.Asio 库是为使用 c + + 的系统编程的程序员,在哪里访问操作系统功能时需要,如网络。尤其是,Boost.Asio 解决实现以下目标︰

  • 可移植性。
  • 库应支持各种常用的操作系统,并在这些操作系统中提供一致的行为。
  • 可扩展性。 
  • 库应促进开发的网络应用程序扩展到数千个并发连接。为每个操作系统库的实现应使用最好使这种可扩展性的机制。
  • 效率。     
  • 应支持散播-聚集 I/O 等技术,并允许程序尽量减少数据复制。
  • 模型概念从既定的 APIS,比如 BSD 套接字。 
  • BSD 套接字 API 是广泛地实施和理解,并覆盖在很多文献。其他编程语言经常使用类似的接口的网络 Api。只要是合理的 Boost.Asio 应该利用现有的实例。
  • 易用性。 
  • 库应该通过工具包,而不是框架,采取为新用户提供较低的进入壁垒。那就是,它应尽量减低时间只学习几个基本的规则和准则的前期投资。在那之后,库用户应该只需要了解正在使用的特定功能。
  • 进一步抽象基础。 
  • 库应允许提供更高的抽象级别其他库的发展。例如,常用的协议,如 HTTP 实现。

虽然 Boost.Asio 开始生活主要侧重于网络,其概念异步 I/O 已经扩大到包括其他操作系统资源,如串行端口、 文件描述符,等等。

0 0