我正在读这本书:英特尔线程构建模块。我经常很难理解它们。例如,以下代码来自本书(第112页):
Node* AllocateNode() {
Node* n;
FreeListMutexType::scoped_lock lock;
lock.acquire(FreeListMutex);
n=FreeList;
if(n)
Freelist=n->next;
lock.release();
if(!n)
n=new Node();
return n;
}
关于此代码还有其他介绍。我不明白。这是什么意思?我怎样才能更好地理解这本书?
答案 0 :(得分:1)
这本书当然详细说明了它的作用?似乎是一种使用互斥锁提供安全访问的方法
答案 1 :(得分:1)
理解代码中发生的事情的关键是理解每个部分。确保您了解互斥锁,线程和竞争条件的概念。还要确保知道FreeListMutex和FreeList的对象是什么以及它们的作用。你可能不得不去谷歌做一些研究,但如果你理解了这些内容,你可以查看代码的每个部分并弄清楚它在做什么。