如何制作任何C ++库我都能使线程安全?

时间:2011-09-24 20:45:19

标签: c++ memory-management thread-safety

首先,我对C ++很有经验,并且了解线程和线程同步的基础知识。我还想编写一个自定义内存分配器作为我的宠物项目,并且已经读过它们应该是线程安全的。

我理解术语“线程安全”的含义,但我不知道如何使C ++代码具有线程安全性。

是否有关于如何使代码线程安全的实用示例或教程?

在内存分配器方案中,它是否基本上确保所有变异函数都被标记为关键部分?或者还有更多的东西吗?

1 个答案:

答案 0 :(得分:3)

与所有线程问题相同:确保当一个线程正在更改某些内容时,没有其他线程正在访问它。对于内存分配系统,我想你需要一种方法来确保你不会同时为2个线程分配相同的内存块。无论是通过包装整个搜索,还是允许多次搜索,但是在更新分配表时锁定(这可能导致搜索结果无效,需要进行另一次搜索)将取决于您。