对于我的跨平台应用程序,我已经开始使用 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();
}
}
}