Boost C++ Libraries Home Libraries People FAQ More

PrevUpHomeNext

線程安全性(Thread Safety)

假定這個庫中的函數模板和類模板都是使用內建的(built-in)浮點類型(例如,float , double , long double)實例化,那麼這個庫是完全的線程安全的並且可重入的(re-entrant)。

然而,當與用戶自定義的數值類型一起使用時,這個庫 不是線程安全的

後面一個限制的理由是使用類似於下面的方式來初始化符號常量:

static const T coefficient_array = { ... list of values ... };

當T是內建的(built-in)浮點類型時,上面的代碼永遠是線程安全的,但是當T是用戶自定義數據類型時,上面的代碼就不是線程安全的:因為在這種情況下需要運行T的構造函數,這就導致了一個潛在的競爭條件( race conditions )。

這個限制可能會在以後的版本中得到解決。


PrevUpHomeNext