【发布时间】:2011-10-27 08:33:40
【问题描述】:
对于我的跨平台应用程序,我已经开始使用 Boost,但我无法理解如何实现代码来重现 Win32 的关键部分或 .Net 的 lock 的行为。
我想写一个方法Foo,可以从不同的线程调用来控制对共享字段的写操作。应该允许同一线程内的递归调用(Foo() -> Foo())。
在 C# 中这个实现非常简单:
object _synch = new object();
void Foo()
{
lock (_synch) // one thread can't be lock by him self, but another threads must wait untill
{
// do some works
if (...)
{
Foo();
}
}
}
【问题讨论】:
标签: c++ multithreading boost synchronization critical-section