Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
尽管在 SO 中以不同的方式提出了这个问题,但我将从 pthreads 的角度以不同的方式询问它,以了解提供同步的工具。
我们知道每个线程都有自己的线程堆栈,但共享堆和全局数据。当堆被共享时,我很困惑如何以及提供哪种同步工具来保护整个堆?
有两种可能性 - 您的系统提供的用于处理堆的函数(malloc、free等)是线程安全的,或者不是。
malloc
free
如果它们是,没问题 - 你不必做任何事情。
如果不是,则需要为每个要使用的函数编写一个包装函数并适当地锁定。pthread_mutex_*电话似乎适合我。
pthread_mutex_*