2010-04-20 25 views
0

Je suis en train de lire le livre: Intel Threading Building Blocks. J'ai souvent des difficultés à les comprendre. Par exemple, le code suivant provient du livre (page 112):Code du livre TBB

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; 
} 

Il existe une autre introduction concernant ce code. Je ne le comprends pas. Qu'est-ce que ça veut dire? Comment puis-je mieux comprendre ce livre?

+0

Jamais entendu parler du livre, mais c'est une fonction qui prend un nœud à partir d'une liste libre de nœuds, s'il y en a un, sinon attribuer un nouveau nœud. Quel morceau de code spécifique ne comprenez-vous pas? –

Répondre

1

La clé pour comprendre ce qui se passe dans le code est de comprendre chaque partie. Assurez-vous de bien comprendre les concepts relatifs aux verrous de mutex, au filetage et aux conditions de course. Assurez-vous également de savoir quels sont les objets FreeListMutex et FreeList et ce qu'ils font. Il se peut que vous deviez vous rendre sur Google et faire des recherches, mais si vous comprenez les éléments, vous pouvez examiner chaque partie du code et comprendre ce qu'il fait.

1

Sûrement le livre détaille ce qu'il fait? Semble être une méthode pour fournir un accès sécurisé en utilisant mutex