Ankündigung

Einklappen
Keine Ankündigung bisher.

PhP && amp;amp; amp;a mp; Threads

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • PhP && amp;amp; amp;a mp; 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

  • #2
    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

    Kommentar


    • #3
      Geht in die Richtung

      Script Running Machine

      Kommentar


      • #4
        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.
        [url]www.php-maven.org[/url] PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
        Twitter @ [url]https://twitter.com/#!/mepeisen[/url] und Facebook @ [url]http://t.co/DZnKSUih[/url]

        Kommentar


        • #5
          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).

          Kommentar


          • #6
            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.
            [url]www.php-maven.org[/url] PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
            Twitter @ [url]https://twitter.com/#!/mepeisen[/url] und Facebook @ [url]http://t.co/DZnKSUih[/url]

            Kommentar


            • #7
              ich stimme dir zu!

              Kommentar


              • #8
                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.

                Kommentar


                • #9
                  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

                  Kommentar

                  Lädt...
                  X