php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 20.12.2004, 12:47   #1 (permalink)
Gast
 
Beiträge: n/a
Standard PhP && Threads

Moin,
ich frag einfach mal obwohl ich denke das es da nichts geben wird.
Giebt es irrgend eine möglichkeit threads in PHP zu benutzen?
Evl ne 3rd party extension? (kann auch als unstable eingestuft sein)

MfG Sirius
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 20.12.2004, 13:04   #2 (permalink)
Waq
Erfahrener Benutzer
 
Registriert seit: 15.08.2004
Beiträge: 2.473
Waq
Standard

Das einzige, was ich kenne, aber nie ausprobiert habe, ist das hier: http://cvs.php.net/pecl/threads/

Warum das Projekt im Sande verlaufen ist, weiss ich nicht wirklich, hab mich nie näher damit beschäftigt. Aber es tut wohl was...
__________________
mod = master of disaster
Waq ist offline   Mit Zitat antworten
Alt 21.12.2004, 14:39   #3 (permalink)
Gast
 
Beiträge: n/a
Standard

Geht in die Richtung

Script Running Machine
  Mit Zitat antworten
Alt 21.12.2004, 17:06   #4 (permalink)
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 3.978
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist einfach richtig nettmepeisen ist einfach richtig nettmepeisen ist einfach richtig nettmepeisen ist einfach richtig nett
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Die Frage ist, was du willst. Sofern sich die Threads auch untereinander unterhalten sollen, sprich auf gleiche Variablen zugreifen sollen usw., wirst du Probleme haben. Das kann PHP einfach nicht, weil intern keine Synchronisierung eingebunden ist.
Das heisst vereinfacht: Wenn du zwei Threads hast, die auf gleiche Ressourcen zugreifen, schreiben die sich gegenseitig alles kaputt und stolpern dabei über die Brocken, die sie sich gegenseitig in den Weg schmeissen.

Ohne neues PHP-Release wird da nichts gehen. Ansonsten gibt es nur den Ausweg, voneinander unabhängige Prozesse parallel laufen zu lassen und sich beispielsweise per Datenbank, Sockets oder was weiss ich auszutauschen.
mepeisen ist offline   Mit Zitat antworten
Alt 21.12.2004, 18:08   #5 (permalink)
Gast
 
Beiträge: n/a
Standard

hua? php liefert funktionen um variablen im hauptspeicher unterzubringen. das problem, dass sich dann scripte gegenseitig die daten überschreiben können, hat man bei einer datenbank genauso (wenn man sperrt tabellen).
  Mit Zitat antworten
Alt 21.12.2004, 19:09   #6 (permalink)
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 3.978
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist einfach richtig nettmepeisen ist einfach richtig nettmepeisen ist einfach richtig nettmepeisen ist einfach richtig nett
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Klar, dass sowas auch per Speicher geht, aber eben nur über extra Funktionen. Aber das sind immer zwei vollkommen unabhängige Prozesse, die nie den gleichen Code-Raum benutzen oder den gleichen Adressraum. Sie tauschen sich nur über zusätzliche Schnittstellen aus. Ob das dann per Handle auf ein Speichersegment hinausläuft oder auf Socket- Kommunikation oder Datenbank ist prinzipiell zweitrangig.
So echtes Multi-Threading mit nur einem Code- Bereich, einem Adressbereich und direktem Zugriff auf alle gleichen Variablen, wie es auch Java anbietet, gibt es nicht in PHP und wird es auch ohne weiteres nicht geben können.

Deswegen auch mein erster Satz: Die Frage ist, was Sirius will.
mepeisen ist offline   Mit Zitat antworten
Alt 21.12.2004, 22:20   #7 (permalink)
Gast
 
Beiträge: n/a
Standard

ich stimme dir zu!
  Mit Zitat antworten
Alt 28.12.2004, 11:00   #8 (permalink)
Gast
 
Beiträge: n/a
Standard

Naja Threads in PHP ..
Mit mehreren PHP Prozessen ( also main prozesse KEINE threads ).
Du könntest das erste aufgerufene Script forken, dann bauste ne methode ein den ersten Prozess ( also das erst aufgerufene Script ) zu nem COntroller macht, also die anderen Forks steuert. Jetzt brauchste noch ne Möglichkeit für IPC ( Inter Process Communication ). Das geht ganz einfach in dem du dir ne Pipe erstellst *brauch man aber Access auf die shell funktion(en)*

PS: Wenn es auf einem windows system läuft kannste mal probieren das über en FileMapping hinzubekommen. Die Informationen dazu findeste im MSDN.

EDIT by Quadaptor: Habe mal dein Doppeleintrag gelöscht. Vermutlich zwei Mal auf "Absenden" geklickt.
  Mit Zitat antworten
Alt 26.01.2005, 23:07   #9 (permalink)
Gast
 
Beiträge: n/a
Standard

das problem is definitiev, das wenn du SHM used wie schon gesagt die daten ueberschrieben werden könnten.
Das PECL modul ist ziehmlich unstable XD bei 10 starts hassu ~4-6 segfaults
das problem liegt denk ich an der speicher addressierung die php macht,

Ich finds eigentlich schade das man keine gescheite moeglichkeit hat die auch schnell (relativ zu php XD) funktioniert und die auch die möglichkeit bietet sachen zu locken (mutexen .. ).

Wenn wer irrgendeine moeglichkeit gefunden hat soll er sich bitte melden ^^

MfG FLorian
  Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
asynchrone kommunikation Threads vegeta PHP Tipps 2006 9 07.11.2008 10:43
PHP Threads oder ähnliches Hu5eL PHP-Fortgeschrittene 4 07.04.2008 13:34
Threads schliessen? Montellese Board-Support 6 12.03.2008 15:41
PHP, Socket und Threads Manuchau PHP-Fortgeschrittene 1 25.08.2006 10:38
Forum besuchte Threads merken lichtscheu PHP Tipps 2006 5 03.03.2006 14:28
Email Threads dh1sbg PHP-Fortgeschrittene 2 14.12.2005 13:12
Array[1] == TRUE && Array[alleanderen]== FALSE TheIfrit PHP Tipps 2005-2 3 25.09.2005 14:08
if ($width && ($width_orig < $height_orig)) PHP Tipps 2005-2 7 11.08.2005 09:41
Dropdown && Checkbox wert speichern? PHP Tipps 2005 2 27.02.2005 21:42
is_dir() &amp;amp;&amp;amp; is_file() funktionieren nicht ? PHP Tipps 2004 5 23.07.2004 18:09
[Erledigt] MySQL Sortierung für Threads Datenbanken 4 12.07.2004 08:38
[Erledigt] THREADS in php PHP-Fortgeschrittene 7 16.06.2004 22:12
Irgendwie fehlen Threads :( Off-Topic Diskussionen 4 10.06.2004 09:35

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php threads, php zwei threads

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:29 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.