(0.8.0)
parallel\Runtime::run — 执行
应将 task
调度为并行执行。
应将 task
调度为并行执行,在执行时传递 argv
。
调度为并行执行的闭包不能
禁止在用于并行执行的闭包中使用的指令是
备注:
嵌套的闭包可以 yield 或按引用使用,但不能包含类或命名函数声明。
备注:
任务可能包含的文件中没有任何指令被禁止。
内部对象通常使用自定义结构,无法安全地按值复制,PHP 目前缺乏这样做(无需序列化)的机制,因此只有不使用自定义结构的对象可以共享。
一些内部对象不使用自定义结构,例如 parallel\Events\Event,因此可以共享。
闭包是一种特殊的内部对象,支持按值复制,因此可以共享。
通道是编写并行代码的核心,支持并发访问和执行,因此可以共享。
扩展内部类的用户类可以使用内部类定义的自定义结构,在这种情况下,它们不能安全地按值复制,因此不能共享。
当任务包含 return 或 throw 语句时,不能忽略返回的 parallel\Future。
如果 parallel\Runtime 已关闭,应抛出 parallel\Runtime\Error\Closed。
如果 task
是从内部函数创建的闭包,应抛出 parallel\Runtime\Error\IllegalFunction。
如果 task
包含非法指令,应抛出 parallel\Runtime\Error\IllegalInstruction。
如果 task
接受或 argv
包含非法变量,应抛出 parallel\Runtime\Error\IllegalParameter。
如果 task
非法返回,应抛出 parallel\Runtime\Error\IllegalReturn。