Synchronisierter Block in PHP 7Php

PHP-Programmierer chatten hier
Guest
 Synchronisierter Block in PHP 7

Post by Guest »

Ich komme aus einem Java-Hintergrund, in dem es synchronisierte Blöcke gab:


Die Schlüsselwörter „Synchronized“ verhindern den gleichzeitigen Zugriff auf einen Block von Code oder Objekt durch mehrere Threads.


Beispielcode in Java:

Code: Select all

public void addName(String name) {
synchronized(this) {
lastName = name;
nameCount++;
}
nameList.add(name);
}
Dieses Beispiel verdeutlicht nun einen grundlegenden Unterschied zwischen PHP und Java (korrigieren Sie mich, wenn ich falsch liege). Aber ein Singleton oder eine gemeinsam genutzte Klasse existiert in PHP nicht. Daher macht das gegebene Beispiel des Java-Codes bei der Verwendung als Singleton sehr viel Sinn. Somit gibt es ein gemeinsames Objekt zwischen Anfragen. Leider scheint dies für PHP nicht zu existieren, was offensichtlich ein großer Nachteil ist. Aber um es auf PHP-Art zu machen, würde das letztendlich dazu führen, dass die Namensanzahl in eine Datei oder Datenbank geschrieben wird und so auf diese Weise Daten zwischen Anfragen ausgetauscht werden (natürlich viel langsamer). Aber das Problem wäre das gleiche: Wenn 2 Anfragen gleichzeitig die Namensanzahl erhöhen, ist es eine zu wenig.

Jetzt die erste Frage: macht etwas Ähnliches gibt es für PHP 7? das heißt, der synchronisierte Block

Jetzt bin ich mir nicht sicher, ob das Wort Thread in PHP 7 wirklich auf das zutrifft, worüber ich mir Sorgen mache. Wird ein Thread in PHP auch als separater Aufruf einer PHP-Datei betrachtet, sagen wir foo.php, das heißt, wenn ich zweimal gleichzeitig auf foo.php zugreife, wird der synchronisierte Block angezeigt, wenn es existiert, kann nur nacheinander ausgeführt werden, oder muss ich einen richtigen PHP-Thread erstellen, indem ich die Klasse Thread erweitere und erst dann zählt es als Thread?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post