Foros del Web » Programando para Internet » PHP »

¿PHP tiene una secuencia única e inalterable la ejecución de scripts?

Estas en el tema de ¿PHP tiene una secuencia única e inalterable la ejecución de scripts? en el foro de PHP en Foros del Web. ¡Hola, ya ni me acuerdo hace cuánto no posteo nada por acá! Saludos de antemano y échenme una mano con la siguiente duda por favor, ...
  #1 (permalink)  
Antiguo 12/03/2020, 17:50
Avatar de berkeleyPunk  
Fecha de Ingreso: febrero-2013
Ubicación: México :C
Mensajes: 556
Antigüedad: 7 años, 1 mes
Puntos: 21
Sonrisa ¿PHP tiene una secuencia única e inalterable la ejecución de scripts?

¡Hola, ya ni me acuerdo hace cuánto no posteo nada por acá! Saludos de antemano y échenme una mano con la siguiente duda por favor,

Estoy aprendiendo Java, y el uso de hilos es algo esencial, porque en Java no existe un único flujo determinado. Por ejemplo, tenemos un programa constituido por A, B y C y queremos que se ejecute en ese orden, primero A, luego B y sólo después C. Supongamos que A tarda 5 segundos en terminar su trabajo. Java no se espera a que A termine su trabajo para luego continuar con B y C. No. Java no se espera y justo después de ejecutar A (sin importar si A terminó su trabajo o no) inmediatamente continúa con B y C. Si resulta que C utiliza los cálculos hechos en A, el programa truena, porque en C estaríamos llamando cálculos que no están disponibles porque los llamamos antes que terminara A. Y justo para salvar problemas como este es que existen los hilos.

Veo que en PHP también existen los hilos hilos. Pero hasta ahora jamás había tenido necesidad de usar hilos, porque hasta donde yo he podido percibir, PHP ejecuta secuencialmente A, B y C, y no tiene el problema de Java mencionado, de tal modo que PHP comienza con A, y sólo al terminar A, sigue con B, y sólo al terminar B, prosigue con C.

Pregunta: ¿Todo lo que digo es correcto? ¿Hay algo más que poner sobre la mesa acerca de esto en PHP, o he estado todo este tiempo trabajando equivocadamente con PHP, pensando que existe realmente una secuencia única inalterable?

Saludos y gracias!
  #2 (permalink)  
Antiguo 12/03/2020, 20:08
 
Fecha de Ingreso: abril-2006
Mensajes: 379
Antigüedad: 14 años
Puntos: 80
Respuesta: ¿PHP tiene una secuencia única e inalterable la ejecución de scripts?

Cita:
Iniciado por berkeleyPunk Ver Mensaje
¡Hola, ya ni me acuerdo hace cuánto no posteo nada por acá! Saludos de antemano y échenme una mano con la siguiente duda por favor,

Estoy aprendiendo Java, y el uso de hilos es algo esencial, porque en Java no existe un único flujo determinado. Por ejemplo, tenemos un programa constituido por A, B y C y queremos que se ejecute en ese orden, primero A, luego B y sólo después C. Supongamos que A tarda 5 segundos en terminar su trabajo. Java no se espera a que A termine su trabajo para luego continuar con B y C. No. Java no se espera y justo después de ejecutar A (sin importar si A terminó su trabajo o no) inmediatamente continúa con B y C. Si resulta que C utiliza los cálculos hechos en A, el programa truena, porque en C estaríamos llamando cálculos que no están disponibles porque los llamamos antes que terminara A. Y justo para salvar problemas como este es que existen los hilos.

Veo que en PHP también existen los hilos hilos. Pero hasta ahora jamás había tenido necesidad de usar hilos, porque hasta donde yo he podido percibir, PHP ejecuta secuencialmente A, B y C, y no tiene el problema de Java mencionado, de tal modo que PHP comienza con A, y sólo al terminar A, sigue con B, y sólo al terminar B, prosigue con C.

Pregunta: ¿Todo lo que digo es correcto? ¿Hay algo más que poner sobre la mesa acerca de esto en PHP, o he estado todo este tiempo trabajando equivocadamente con PHP, pensando que existe realmente una secuencia única inalterable?

Saludos y gracias!
es correcto , php es Lineal, y java Tambien, todos los lenguajes de Programacion son Lineales, pero la magia esta en que tienen CLASSES y FUNCIONES para manejar Hilos o Threads, PHP tambien dispone de una extension para manejar Hilos, aunque el mas comodo es el NODEJS o JAVASCRIPT, el mundo de los Hilos y Threadings es muy complejo y deben ser tratados lo mas delicado posibles por que son mas dificiles de hacer un DEBUG, y si no esta bien estructurado desde el Principio te dara Error

ahora ay una cosa, en PHP cuando es ejecutado por APACHE como Extension, Apache crea un HILO con el script PHP, cada Ejecucion de PHP es un THREAD o HILO de apache,

THREAD o HILO creo que tecnicamente son cosas diferentes pero a modo de entenderlo mas facil esta bien sino tendras que googlear las definiciones correctas

pero bueno con PHP e tenido mas alegrias que miedos, debido a que cada error fue facilmente subsanado, en cambio cuando trabaje con Java, Delphi, C# y usaba Threads o Hilos, cada que crasheaba algo era una faena pillar, la variable, o instancia problematica, incluso aplicaciones que fueron puestos en Debug que pasaron 24 horas sin presentar problemas, en Modo Produccion, luego de 1 Mes daban errores o problemas, por Threads mal implementados, variables o instancias no liberadas
__________________
Mis aportes te ayudaron??, te hicieron ahorrar valiosos tiempo??, si quieres puedes agradecerme con un Gracias o con una donacion
https://paypal.com/pools/c/8lmNLmWnG9
  #3 (permalink)  
Antiguo 13/03/2020, 11:18
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 2.007
Antigüedad: 7 años, 7 meses
Puntos: 52
Respuesta: ¿PHP tiene una secuencia única e inalterable la ejecución de scripts?

Trabaje con java, y siempre se ejecuta lineal, tendrias que ser mas especifico y decir exactamente que codigo es A,B y C
Los hilos los use cuando necesitaba ejecutar antes de que el otro calculo acabara
__________________
a veces creemos que es algo básico pero al profundizar nos damos cuenta que estábamos tocando solo la cola de la culebra
  #4 (permalink)  
Antiguo 13/03/2020, 16:08
 
Fecha de Ingreso: abril-2011
Mensajes: 66
Antigüedad: 9 años
Puntos: 19
Respuesta: ¿PHP tiene una secuencia única e inalterable la ejecución de scripts?

Buenas,

Sí, PHP tiene un API para manejar hilos (llamado pthread) pero conviene aclarar que no está soportado en entornos web, por tanto se queda bastante limitado:
Cita:
The pthreads extension cannot be used in a web server environment. Threading in PHP is therefore restricted to CLI-based applications only.
Como ha comentado tuadmin, para trabajar con threads en entornos web existen opciones como NodeJS.




La zona horaria es GMT -6. Ahora son las 10:45.