pthread - 当多个线程共享同一个堆时,如何提供堆同步机制?

时间:2013-06-25 17:44:12

标签: c linux pthreads

虽然在SO中已经以不同的方式提出了这个问题,但我会从pthreads的角度以不同的方式询问它以了解提供同步的工具。

我们知道每个线程都有自己的线程堆栈,但共享堆和全局数据。当堆共享时,我很困惑如何以及提供哪种同步工具来保护完整堆?

1 个答案:

答案 0 :(得分:1)

有两种可能性 - 系统提供的用于处理堆的函数(mallocfree等)是线程安全的,或者它们不是。

如果是,没问题 - 你不需要做任何事情。

如果不是,则需要为要使用的每个函数编写一个包装函数并进行适当的锁定。 pthread_mutex_*电话看起来对我来说很合适。