Boost 助推再入

Boost 助推再入,boost,reentrancy,Boost,Reentrancy,在使用多线程时,我需要确保我使用的boost类是可重入的(即使每个线程使用自己的对象实例) 我很难在Boost类的文档中找到关于类的可重入性的声明。我是不是遗漏了什么?除非文档中另有明确说明,否则所有Boost类都是可重入的吗?或者Boost关于重入状态的文档是一个灰色区域 例如,我在文档中找不到关于boost::numeric::ublas可重入性的语句∷矩阵类。那么我能假设它是可重入的吗 谢谢 Ofer < P>与STL和C++标准库的大部分相似,即: 可以同时在两个线程中创建一个类型

在使用多线程时,我需要确保我使用的boost类是可重入的(即使每个线程使用自己的对象实例)

我很难在Boost类的文档中找到关于类的可重入性的声明。我是不是遗漏了什么?除非文档中另有明确说明,否则所有Boost类都是可重入的吗?或者Boost关于重入状态的文档是一个灰色区域

例如,我在文档中找不到关于boost::numeric::ublas可重入性的语句∷矩阵类。那么我能假设它是可重入的吗

谢谢


Ofer

< P>与STL和C++标准库的大部分相似,即:

  • 可以同时在两个线程中创建一个类型的两个实例
  • 同时在两个线程中使用一个类型的两个实例是可以的
  • 在两个线程中同时使用单个对象通常是不合适的
  • 但是在两个线程中对一个对象执行只读操作通常是可以的
  • 通常不会采取特别的措施来“增强”线程安全性,除非有特别的需要,如共享ptr、Asio、信号2(但不是信号)等。Boost中看起来像值类型的部分(比如你的矩阵示例)可能根本没有任何特殊的线程安全支持,由应用程序决定

  • Post与STL和C++标准库中的大多数类似,即:

    • 可以同时在两个线程中创建一个类型的两个实例
    • 同时在两个线程中使用一个类型的两个实例是可以的
    • 在两个线程中同时使用单个对象通常是不合适的
    • 但是在两个线程中对一个对象执行只读操作通常是可以的
    • 通常不会采取特别的措施来“增强”线程安全性,除非有特别的需要,如共享ptr、Asio、信号2(但不是信号)等。Boost中看起来像值类型的部分(比如你的矩阵示例)可能根本没有任何特殊的线程安全支持,由应用程序决定

    我认为您真正想要的是线程安全。这与重入不同。IIRC,可重入性严格来说是关于在单个线程上并发调用时函数的行为。线程安全性是关于多线程时函数的行为。可重入性似乎有多个定义。我在Qt的文档中使用了这个概念:我认为您真正想要的是线程安全。这与重入不同。IIRC,可重入性严格来说是关于在单个线程上并发调用时函数的行为。线程安全性是关于多线程时函数的行为。可重入性似乎有多个定义。我在Qt的文档中使用了这个概念:谢谢!你真的帮了大忙谢谢!你帮了大忙