2010-04-20 6 views
0

저는 인텔 스레딩 빌딩 블록을 읽었습니다. 나는 종종 그들을 이해하는 데 어려움을 겪는다. 예를 들어, 다음 코드는 책 (112 페이지)의 내용입니다.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; 
} 

이 코드와 관련하여 다른 소개가 있습니다. 나는 그것을 이해할 수 없다. 무엇 않습니다 그 의미? 이 책을 어떻게 더 잘 이해할 수 있습니까?

+0

책을 들어 본 적이 없지만 노드가있는 경우 노드를 자유 목록에서 가져 오는 기능입니다. 그렇지 않으면 노드를 새로 할당합니다. 어떤 특정 비트의 코드를 이해하지 못합니까? –

답변

1

코드에서 무슨 일이 벌어지고 있는지 이해하는 열쇠는 각 부분을 이해하는 것입니다. 뮤텍스 잠금, 스레딩 및 경쟁 조건에 대한 개념을 이해했는지 확인하십시오. 또한 FreeListMutex와 FreeList가 무엇인지, 그리고 무엇을하는지 알아야합니다. Google로 가서 조사를해야 할 수도 있지만 코드 조각을 이해하면 코드의 각 부분을 살펴보고 그 내용을 파악할 수 있습니다.

1

분명히 책 내용은 무엇입니까? 뮤텍스를 사용하여 안전한 액세스를 제공하는 방법처럼 보입니다.