Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ TBB手册中的代码_C++_Tbb - Fatal编程技术网

C++ TBB手册中的代码

C++ TBB手册中的代码,c++,tbb,C++,Tbb,我正在读这本书:英特尔线程构建块。我常常很难理解它们。例如,以下代码来自本书(第112页): 关于此代码还有其他介绍。我不明白。这意味着什么?我怎样才能更好地理解这本书 这本书肯定详细介绍了它的功能吗?似乎是一种使用互斥锁提供安全访问的方法理解代码中发生的事情的关键是理解每个部分。确保您了解互斥锁、线程和竞争条件的概念。还要确保您知道FreeListMutex和FreeList是什么对象以及它们的作用。你可能需要去谷歌做一些研究,但如果你理解了代码的每一部分,你就可以查看代码的每一部分并找出它在

我正在读这本书:英特尔线程构建块。我常常很难理解它们。例如,以下代码来自本书(第112页):


关于此代码还有其他介绍。我不明白。这意味着什么?我怎样才能更好地理解这本书

这本书肯定详细介绍了它的功能吗?似乎是一种使用互斥锁提供安全访问的方法

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

从未听说过这本书,但这是一个函数,它可以从节点的自由列表(如果有)中获取一个节点,或者分配一个新节点。你不明白哪一段代码?
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;
}