Pregunta

Soy nuevo en PHP, por lo que para empezar me he decidido a poner en práctica un conjunto unitario.

Aunque soy capaz de recrear el patrón Singleton en php, pero no estoy seguro de cómo implementar una doble comprobación de bloqueo.

¿Es eso posible / necesario en PHP. He leído en alguna parte que PHP no es multiproceso? ¿Alguien puede confirmar eso?

Si es multiproceso, puede que alguien me explique cómo bloqueo () o sincronizar () de trabajo en PHP?

Gracias, Henry

¿Fue útil?

Solución

Compartir-nada Arquitectura

Compartir-nada Arquitectura :

  • como HTTP, cada solicitud es distinta
  • los datos compartidos se empuja hacia abajo a la capa de datos de tienda
  • Evite los controladores frontales

Esto nos da:

  • Capacidad de equilibrio de carga
  • Invisible de conmutación por error de un centro de datos a otro
  • Mejor modularización de las aplicaciones
  • más fácil desarrollar y depurar

una doble comprobación de bloqueo

pero no estoy seguro de cómo poner en práctica a comprobar de bloqueo.

En general, la capa de base de datos es responsable de esto. MySQL (innodb) estándar tiene para el nivel de ejemplo fila de bloqueo (que debería ser suficiente para esto).

InnoDB realiza bloqueos a nivel de fila y se ejecuta consultas como nonlocking las lecturas consistentes de forma predeterminada, en el estilo de Oracle.

Si esto no es suficiente que no sea SQL también tiene, por ejemplo, transacciones para que esto suceda.

Libros en pantalla define como una transacción una "secuencia de operaciones realizadas como una única unidad lógica de trabajo "

Tenedor procesa

Al igual que las diapositivas decir PHP tiene una cuota-nada-Arquitectura (tradicional), que también implica que PHP no tiene un hilo (modelo) . Aunque se puede compilar ( activado por defecto ) PHP para contar con el apoyo a horquilla procesos que pueden comunicarse entre sí. Cuando se compila también los semáforo Funciones a continuación, puede hacer cosas como < a href = "http://www.php.net/manual/en/function.sem-acquire.php" rel = "noreferrer nofollow"> sem_acquire y sem_release . Pero en general esto no se aplica PHP.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top