Durante mucho tiempo, PHP ha carecido de la funcionalidad para escribir programas con varios hilos de ejecución simultáneos.
Actualmente, es posible instalar un intérprete de PHP con soporte para pthreads (POSIX threads) aunque las distribuciones estándard de PHP no lo incluyen. Para conseguirlo es necesario compilar el intérprete a partir del código fuente, incluyendo la opción “–enable-maintainer-zts” (–enable-zts en Windows). Pero esto sólo sirve para que el intérprete sea “thread-safe” y funcione bajo un servidor Apache con multithreading (Worker MPM), en vez de en un servidor Apache multiproceso (Pre-fork MPM). Por otra parte, se suele desaconsejar este tipo de instalación, porque aunque el núcleo de PHP sea thread-safe, puede que cualquiera de la extensiones que se utilicen no lo sea.
En este artículo vamos a explorar las distintas posibilidades para la implementación de scripts multihilo en PHP, y las consideraciones que hay que tener en cuenta al hacerlo.
Seguir leyendo »