2013-11-15 3 views
1

"스핀?"함수 호출의 의미는 무엇입니까? 차단과 동일한 것입니까?"스핀"호출의 의미는 무엇입니까?

/* 
    * Obtain a free channel 
    * This call spins till a free channel is obtained 
    */ 
    chNum = _getFreeChannel(&tccNum); 

감사 :

내가 말하는 겁니다 맥락이다.

+2

'Channel c = getFreeChannel(); while (c == NULL) c = getFreeChannel(); ' – Raxvan

+0

고마워! 그건 바로 – user2816823

+2

[ "당신은 이것을 이해할 것으로 기대하지 않습니다.]"(http://cm.bell-labs.com/cm/cs/who/dmr/odd.html) –

답변

7

기본적으로 루프합니다. 회전 기능이 루프로 바쁘다.

5

스핀은 동시성 기술입니다. 기본적으로 함수는 원하는 조건이 충족 될 때까지 반복됩니다.

스핀 시간이 클 경우 계산 비용이 높을 수 있지만 예상 스핀 시간이 매우 작고 분산이 작은 경우 대기 및 알림 관용구 (설정 오버 헤드가 있음)보다 선호 할 수 있습니다.

3

함수가 회전 할 때 일반적으로 몇 가지 흥미로운 값이 될 때까지 일정한 루프에서 반복적으로 변수 같은 조건을 검사합니다. 조건이 충족되면 실행을 계속합니다.