Parallel processing component for Amp.
True parallel processing using multiple processes or native threads for concurrent PHP code execution, without blocking, no extensions required.
amphp/parallel is a component for Amp that provides native threading, multiprocessing, process synchronization, shared memory, and task workers for concurrently executing PHP code. Like other Amp components, this library uses Coroutines built from Promises and Generators to make writing asynchronous code more like writing synchronous code.
To be as flexible as possible, this library comes with a collection of non-blocking concurrency tools that can be used independently as needed, as well as an "opinionated" worker API that allows you to assign units of work to a pool of worker threads or processes.
This package can be installed as a Composer dependency.
composer require amphp/parallel
- PHP 7.0+ (no extensions required)
amphp/parallel follows the semver semantic versioning specification like all other
If you discover any security related issues, please email
email@example.com instead of using the issue tracker.
The MIT License (MIT). Please see
LICENSE for more information.
Want to hack on the source? A Vagrant box is provided with the repository to give a common development environment for running concurrent threads and processes, and comes with a bunch of handy tools and scripts for testing and experimentation.
Starting up and logging into the virtual machine is as simple as
vagrant up && vagrant ssh