2013-07-25 2 views
-1

제 생각에 다른 스레드를 만들고 다른 스레드에서 compute()를 실행합니다. 그러면 join은 재귀 적으로 얻은 결과를 가져옵니다.fork() 호출은 결국 계산합니까?

fork()compute()으로 전화를 걸 었는지 여부를 알고 싶습니다. 미리 감사드립니다.

+1

소스 코드를 살펴보십시오. –

+0

@SotiriosDelimanolis 나는 그것을 검사했고 그것은 나에게 그렇게 분명하지 않다. – Rollerball

+0

표면에서 사용되지 않는다는 것을 알 수 있습니다 ... 그러면 계산을 호출하지 않고 어떻게 작동합니까? – Rollerball

답변

2

fork 메서드는 compute을 호출하지 않습니다. 실행중인 스레드가 결국 compute을 호출해야 하는지를 결정하거나 작업을 도용하고 계산을 호출하도록 다른 스레드에 알리는 작업 대기열로 분기 된 작업을 푸시합니다.

+0

작업 대기열이 다른 프로세스와 공유됩니까? – Rollerball

+0

각 스레드는 고유 한 큐를가집니다. 그러나 각 스레드는 대기열에서 작업을 도용하기 시작하기 위해 FJ 풀의 다른 스레드에 알릴 수 있습니다. –