Domanda

Sono nuovo di PHP, in modo per iniziare ho deciso di implementare un Singleton.

Mentre io sono in grado di ricreare il pattern Singleton in php, ma non sono sicuro come implementare ricontrollato blocco.

è che anche possibile / necessaria in PHP. Ho letto da qualche parte che PHP non è multithreaded? Qualcuno può confermare questo?

Se si è multithreaded, qualcuno può spiegare a me come blocco () o sincronizzare () opera in PHP?

Grazie, Henry

È stato utile?

Soluzione

Condividi-niente di Architettura

Share-nothing Architettura :

  • Come HTTP, ogni richiesta è distinto
  • I dati condivisi è spinto fino allo strato di dati-store
  • controller Evitare anteriori

Questo ci dà:

  • Possibilità di bilanciamento del carico
  • failover invisibile da un data center all'altro
  • Una migliore modularizzazione di applicazioni
  • Più facile per sviluppare ed eseguire il debug

ricontrollato blocco

, ma non sono sicuro come implementare ricontrollato bloccaggio.

In generale, il livello di database è responsabile di questo. MySQL (innodb) standard ha per esempio livello di riga bloccaggio (che dovrebbe essere sufficiente per questo).

InnoDB non bloccaggio sul livello di riga e corre query come posizioni fisse coerente legge di default, nel stile di Oracle.

Se questo non è sufficiente a SQL ha anche per esempio, transazioni per rendere questo accada.

Documentazione in linea definisce una transazione come una "sequenza di operazioni eseguite come una singola unità logica di lavoro "

Forcella elabora

Come le diapositive dire PHP ha una quota-niente-Architecture (tradizionale), che fa anche implicare che PHP non ha un filo (modello) . Anche se è possibile compilare ( abilitato di default ) PHP di avere il supporto a forcella processi in grado di comunicare tra loro. Quando si compila anche le Semaphore Funzioni allora si può fare cose come < a href = "http://www.php.net/manual/en/function.sem-acquire.php" rel = "nofollow noreferrer"> sem_acquire e sem_release . Ma in generale questo non si applica PHP.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top