Boost.Interprocess使用手册翻译之一:介绍 (Introduction)

来源:互联网 发布:网络电视wifi连接不了 编辑:程序博客网 时间:2024/04/29 17:59

写在最前:

1. 原文来源:http://www.boost.org/doc/libs/1_49_0_beta1/doc/html/interprocess.html#interprocess.intro

2. 基于boost_1_49_0_beta1

3. 译者水平有限,不当之处请各位海涵。同时盼多多交流。


一.介绍

创建 Boost.Interprocess

  测试编译器

 

Boost.Interprocess简化了普通进程间通信以及同步机制的使用,并且提供了以下广泛内容:

  • 共享内存
  • 内存映射文件
  • 在共享内存和内存映射文件中使用信号量,互斥,条件变量以及可升级互斥类型
  • 这些同步对象的命名版本,类似于UNIX/Windows的sem_open/CreateSemaphore API
  • 文件锁
  • 相对指针
  • 消息队列

 

Boost.Interprocess同时也提供了更高层次的进程间通信机制,用于分配共享内存或内存映射文件的动态部分(一般是分配一个固定大小的内存段)。使用此机制,Boost.Interprocess在共享内存以及内存映射文件中提供了有用的工具用于构建C++对象,包括类STL容器:

  • 在共享内存或内存映射文件中动态创建匿名和命名对象
  • 与共享内存或内存映射文件兼容的类STL容器
  • 准备为共享内存/内存映射文件执行一些内存分配模式的类STL分配器(类似内存池)

 

创建 Boost.Interprocess

Boost.Interprocess不需要编译,因为它是一个仅有头文件的库(译注:实际上Boost中的大多数库都是采用源代码引用的方式使用,不需要编译)。仅需要在你的编译器中包含Boost头文件夹路径即可。

Boost.Interprocess依赖于Boost.DateTime,它需要单独编译。然而,被Boost.Interprocess使用的子集是不需要单独编译的,因此用户可以定义BOOST_DATE_TIME_NO_LIB来避免Boost尝试自动链接Boost.DateTime。

在POSIX 系统中,Boost.Interprocess使用pthread系统调用来执行类,比如互斥、条件变量等。在一些操作系统中,这些POSIX调用是在单独的库中被执行的,编译器不会自动链接。例如,在一些Linux操作系统中POSIX pthread函数是在librt.a库中执行,因此当链接一个使用Boost.Interprocess的可执行或共享的库时,你可能需要添加那个库。如果出现与这些pthread函数相关的链接错误时,请参考你的系统文档以便了解哪些库执行它们。

 

测试编译器

Boost.Interprocess已经在以下的编译器/平台上进行过测试:

  • Visual >= 7.1
  • GCC >= 4.1
  • Intel 11
0 0