我正在使用 C++,并且正在使用 boost 库 mutex、recursive_mutex 和其他同步对象。
我经常有以下模式:
- 无效重建所有()。此功能进行了许多内部更改。
- 无效 DoSomethingA()。使用 RebuildAll 构建的东西做一些工作。
- 无效 DoSomethingB()。使用 RebuildAll 构建的东西做一些工作。
- 无效 DoSomethingC()。使用 RebuildAll 构建的东西做一些工作。
- ...
可以从不同的线程调用这些函数。我希望能够并行执行 DoSomethingA()、DoSomethingB() 和 DoSomethingC()。但是当调用 RebuildAll() 时,我需要确保 DoSomething 函数没有被执行。
有什么可以帮助我保护这些功能吗?