2012-06-20 2 views
5

Ich würde diese Simple PHP Upload with a Progress Bar verwenden, und es heißt, ich brauche die APC-Erweiterung. Ich habe zwei Möglichkeiten mit APC, Thread-sicher und nicht Thread-sicher.Ist die Verwendung einer threadsicheren Erweiterung (APC) in einer Nicht-Thread-Umgebung schädlich? (PHP)

Ich benutze phpinfo, ich finde, dass Thread-Sicherheit aktiviert ist, aber ich bin mir nicht sicher, ob PHP tatsächlich mit Multithread läuft. Ich habe gehört, dass php immer noch ein bisschen Beta für Muttithread ist.

Wie auch immer, wenn mein PHP nicht mit mehreren Threads und nicht "threadsicher" ist, würde es Probleme mit einer thread-sicheren Version von APC geben?

tl; dr-version: Bedeutet thread-safe APC mehr Kompatibilität (funktioniert in php single/multithread), oder bedeutet es, dass musthread erforderlich ist (funktioniert nur in php muttihread)?

+2

Wenn PHP mit Thread-Sicherheit kompiliert wurde, muss die Erweiterung auch gewesen sein. Wenn PHP nicht Thread-sicher ist, muss die Erweiterung auch sein. Die Erweiterung wird nur geladen, wenn sie übereinstimmt. In diesem Fall erhalten Sie [einen Fehler wie diesen] (http://stackoverflow.com/q/3271798/185544) (beachten Sie die TS/NTS-Abweichung). Sie benötigen also den thread-sicheren APC. – Wiseguy

Antwort

6

Wenn mein PHP nicht mit mehreren Threads arbeitet und nicht "Thread-sicher" ist, würde es Probleme mit einer thread-sicheren Version von APC geben?

Ja - es wird nicht funktionieren, Punkt. Thread-Sicherheit ist eine Kompilierungseinstellung, die für PHP selbst und alle Erweiterungen übereinstimmen muss, andernfalls können sie nicht geladen werden. Here's an article das erklärt den Unterschied im Detail.

Beachten Sie, dass neben der TS/NTS Einstellung, Sie auch müssen die CPU-Architektur (x86 vs x64) und die Version von Visual Studio verwendet, um zu kompilieren (VC6 vs. VC9) für eine Erweiterung anzupassen, um zu arbeiten , und die Version der Erweiterung funktioniert möglicherweise nur mit einer bestimmten Hauptversion von PHP.

All dies bedeutet, dass es verdammt schwer sein kann, die richtige vorkompilierte Binärdatei einer Erweiterung für die Arbeit mit Ihrer PHP-Installation zu bekommen.

-2

Ich rate zur Verwendung der thread-sicheren Version. Während die nicht thread-sichere Version möglicherweise schneller ist, falls PHP Threads (oder seine Erweiterungen) unterstützt, ist es eine gute Idee, diese zusätzliche Kompatibilität zu haben.

+0

Bitte beachten Sie die Antwort von Michael Borgwardt - threadsichere und nicht threadsichere Versionen von PHP, einschließlich Erweiterungen, sind nicht miteinander kompatibel. – duskwuff

+0

Yup, verstanden. Ich habe mich nicht darum gekümmert, meine Antwort zu aktualisieren. –

Verwandte Themen