CascadiaPHP 2024

Functional API

The parallel\Runtime API provides a great degree of control to the power PHP programmer, and those intimately familiar with writing applications that use parallel concurrency.

The functional API provides less control in exchange for the ability to make decisions for the programmer:

  • all executing runtimes are bootstrapped identically

  • scheduling is determined by the API, not the programmer

parallel\run() provides the guarantee that the task will begin to execute in parallel as soon as allowed by hardware and operating system constraints, without needlessly creating runtimes. For most applications the functional API should be preferred.

Table of Contents

add a note

User Contributed Notes 1 note

gajowy at agzeta dot pl
1 year ago
Consider cost of bootstraping. In the parallel\Runtime API the bootstrap routine is executed each time "new Runtime()" is called. So if you create e.g. 8 Runtimes, the bootstrap code will be executed 8 times and it does not depend on the number of Futures. On the other hand, in the case of Functional API each "parallel\run()" causes the boostrap code to be called again. This can be painfull if your tasks environement is complex (eg. huge datasets that need to be prepared in advance and thausends of relatively small tasks).
To Top