Ankündigung

Einklappen
Keine Ankündigung bisher.

PHP Threading, Kommunikation zwischen Prozessen

Einklappen

Neue Werbung 2019

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

  • PHP Threading, Kommunikation zwischen Prozessen

    Hallo,

    Ich schreibe im Moment ein Programm für die CLI. Da dieses Programm einige langwierige Berechnung vollführt, trotzdem aber sehr performant sein muss, habe ich mich dazu entschieden, einige Teile in threads auszulagern.

    Da PHP an sich keine threads unterstützt, Regel ich das ganze über proc_open und proc_close direkt auf Systemebene.

    Das Funktioniert soweit super. Nun stehe ich jedoch vor einem Problem. Über die Pipes des mit proc_open geöffneten Prozesses kann ich mit diesem Kommunizieren. Das Problem ist nun nur, dass der mit proc_open geöffnete Prozess Daten übergeben muss.

    Wie das geht ist klar. Man könnte einfach mit print was in stdout schreiben und dann im "main-Thread" die pipe lesen. Das Problem ist, dass ich Daten jeder art übergeben muss.
    D.h. ich muss Arrays, Structs (assoziative Arrays), Strings, Bools, Ints etc übergeben.

    In Python gäbe es dafür z.B. die Klasse pickle um Daten zu zerlegen und dann als Text zu "versenden", woanders zu "empfangen" und wieder herzustellen.
    In PHP habe ich das nicht gefunden.

    Wäre toll wenn einer von euch da eine Idee hätte.

    P.S.:
    Super wäre es natürlich, man hätte eine Funktionalität ähnlich in Python "Queue". Wenn ihr dazu noch eine Idee für die Umsetzung habt, bin ich auch ganz Ohr, ist jetzt aber nicht das Hauptanliegen.

    Danke im Voraus
    Grüße Frank

  • #2
    Um Arrays usw als Text zu übergeben könnte dir serialize helfen:

    PHP: serialize - Manual
    PHP: unserialize - Manual

    Kommentar

    Lädt...
    X