프로세스 분기와 생성의 차이점은 무엇입니까?


최상의 답변

스폰은 다른 프로세스를 시작한 다음 생성 한 프로세스를 계속하는 것입니다.

포킹은 스폰에 사용할 수있는 특정 Unix / Posix 메커니즘입니다. Forking은 동일한 프로세스의 거의 동일한 두 가지 버전을 생성합니다. “거의”프로세스가 원본인지 분기 된 버전인지 알 수 있기 때문입니다. 그런 다음

할 수 있습니다 , 어떤 인스턴스인지에 대한 지식에 따라 다른 작업을 수행하지만 가장 일반적인 작업은 즉시 다음 중 하나를 가져 오는 것입니다. 인스턴스를 다른 프로세스로 대체하여 스폰과 동일한 효과를 생성합니다. 하지만 그렇게 할 필요 는 없습니다. 두 작업에 대한 논리는 포함 될 수 있습니다. 한 프로세스에서.

Answer

Process.fork를 사용하면 다른 프로세스에서 루비 코드를 실행할 수 있습니다. Process.spawn을 사용하면 다른 프로세스에서 다른 프로그램을 실행할 수 있습니다. 기본적으로 Process.spawn은 더 많은 옵션을 제공한다는 점을 제외하고는 Process.fork를 사용한 다음 분기 된 프로세스에서 exec를 호출하는 것과 같습니다.

그리고 어떤 것이 하위 프로세스에서 다른 프로그램을 실행하는 것이 더 낫습니까?

이전 버전과의 호환성이 필요한 경우 1.8에서 spawn을 사용할 수 없으므로 fork + exec를 사용하십시오. 그렇지 않으면 하위 프로세스에서 다른 프로그램을 실행하는 것이 정확히 생성되기 때문에 spawn을 사용하십시오.

내가 이해하는 한 Process.fork는 코드 블록을 받아들이고 Process.spawn은 시스템 명령과 다른 매개 변수를 사용합니다.

정확합니다.

언제 다른 것 대신 하나를 사용해야합니까?

별도의 프로세스에서 임의의 루비 코드를 실행해야하는 경우 포크를 사용하십시오 (스폰으로는 실행할 수 없음). 하위 프로세스에서 애플리케이션을 호출해야하는 경우에는 spawn을 사용하십시오.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다