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