0

我正在阅读这本书:英特尔线程构建模块。我经常难以理解它们。例如,以下代码来自本书(第 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;
}

关于此代码还有其他介绍。我不明白。这是什么意思?如何更好地理解这本书?

4

2 回答 2

1

当然,这本书详细说明了它的作用?似乎是一种使用互斥锁提供安全访问的方法

于 2010-04-20T16:48:52.760 回答
1

理解代码中发生了什么的关键是理解每个部分。确保您了解互斥锁、线程和竞争条件的概念。还要确保您知道 FreeListMutex 和 FreeList 对象是什么以及它们的作用。你可能不得不去谷歌做一些研究,但如果你理解了这些部分,你可以查看代码的每个部分并弄清楚它在做什么。

于 2010-04-20T16:52:32.807 回答