parallel parallel\run
(1.0.0)
parallel\run — Execution
설명
parallel\run(Closure $task
): ?Future
병렬로 실행할 task
을 예약해야 합니다.
parallel\run(Closure $task
, array $argv
): ?Future
실행 시간에 argv
를 전달하여 병렬로 실행할 task
을 예약합니다.
자동 스케줄링
parallel\run()에 대한 이전 호출에 의해 내부적으로 생성되고 캐시된 \parallel\Runtime이 유휴 상태인 경우 작업을 실행하는 데 사용됩니다. \parallel\Runtime이 유휴 상태가 아니면 병렬이 \parallel\Runtime을 만들고 캐시합니다.
메모: 프로그래머가 만든 \parallel\Runtime 개체는 자동 스케줄링에 사용되지 않습니다.
매개변수
task
- 특정 특성을 가진 클로저.
argv
- 실행 시
task
에 전달할 특정 특성을 가진 인수 배열입니다.
Task Characteristics
병렬 실행을 위해 예약된 클로저는 다음을 수행해서는 안 됩니다.
- 참조로 수락 또는 반환
- 내부 객체 수락 또는 반환(참고 참조)
- 제한된 명령 집합을 실행
병렬 실행을 위한 클로저에서 금지된 명령은 다음과 같습니다.
- yield
- use by-reference
- declare class
- declare named function
메모: 중첩된 클로저는 참조로 생성하거나 사용할 수 있지만 클래스 또는 명명된 함수 선언을 포함해서는 안 됩니다.
메모: 작업에 포함될 수 있는 파일에는 지침이 금지되어 있습니다.
Arguments Characteristics
인수는 다음을 수행해서는 안 됩니다.
- contain references
- contain resources
- contain internal objects (see notes)
메모: 파일 스트림 리소스의 경우 리소스는 파일 설명자로 캐스팅되고 가능한 경우 int로 전달됩니다. 이는 Windows에서 지원되지 않습니다.
내부 개체 참고 사항
내부 객체는 일반적으로 값으로 안전하게 복사할 수 없는 사용자 정의 구조를 사용합니다. PHP는 현재 이 작업을 수행하는 메커니즘(직렬화 없이)이 부족하므로 사용자 정의 구조를 사용하지 않는 객체만 공유할 수 있습니다.
일부 내부 개체는 사용자 지정 구조(예: parallel\Events\Event)를 사용하지 않으므로 공유될 수 있습니다.
클로저는 특별한 종류의 내부 객체이며 값으로 복사되는 것을 지원하므로 공유될 수 있습니다.
채널은 병렬 코드 작성의 중심이며 필요에 따라 동시 액세스 및 실행을 지원하므로 공유될 수 있습니다.
경고 내부 클래스를 확장하는 사용자 클래스는 내부 클래스에서 정의한 대로 사용자 정의 구조를 사용할 수 있으며, 이 경우 값으로 안전하게 복사할 수 없으므로 공유할 수 없습니다.
반환 값
경고 작업에 return 또는 throw 문이 포함된 경우 return parallel\Future를 무시해서는 안 됩니다.
예외
경고 parallel\Runtime이 닫힌 경우 parallel\Runtime\Error\Closed를 throw합니다.
경고 task
이 내부 함수에서 생성된 클로저인 경우 parallel\Runtime\Error\IllegalFunction을 throw합니다.
경고 task
에 잘못된 명령이 포함된 경우 parallel\Runtime\Error\IllegalInstruction을 throw합니다.
경고 task
이 허용하거나 argv
에 잘못된 변수가 포함된 경우 parallel\Runtime\Error\IllegalParameter를 throw합니다.
경고 task
이 불법적으로 반환되면 parallel\Runtime\Error\IllegalReturn을 발생시킵니다.