Multiple threads?

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Bill Godfrey

    #1

    Multiple threads?

    Hiya. I'm sure this question has come up on this group many times before,
    but I can't find any prior discussion. (Appologies if I missed it.)

    I have a PHP program looking a bit like this.

    Read a load of data over the network from node 1.
    Process the data.
    Read a load of data over the network from node 2.
    Process the data.
    ....
    Read a load of data over the network from node n. (2<n<50)
    Process the data.
    Combine all the data together and report.

    The time spent waiting for the remote node could be better spent processing
    the data. I'd also like to make many requests at the same time, rather than
    waiting for one to report before making the next request.

    In short...

    For each node, start a ReadAndProcess thread.
    Wait for each thread to report back in the order they complete.
    Once all threads have reported, sort, combine and report.

    How do PHP developers do this please?

    (If I were using C#, I'd create and start a Thread for each node. The main
    thread would then enter a Monitor.Wait state as each worker thread
    performed a Monitor.Pulse on completion, leaving data in a shared object.)

    Bill, context switch!

    --
    http://billpg.me.uk/ usenet(at)billp g(dot)me(dot)uk
  • Chris Hope

    #2
    Re: Multiple threads?

    Bill Godfrey wrote:
    [color=blue]
    > Hiya. I'm sure this question has come up on this group many times
    > before, but I can't find any prior discussion. (Appologies if I missed
    > it.)
    >
    > I have a PHP program looking a bit like this.
    >
    > Read a load of data over the network from node 1.
    > Process the data.
    > Read a load of data over the network from node 2.
    > Process the data.
    > ...
    > Read a load of data over the network from node n. (2<n<50)
    > Process the data.
    > Combine all the data together and report.
    >
    > The time spent waiting for the remote node could be better spent
    > processing the data. I'd also like to make many requests at the same
    > time, rather than waiting for one to report before making the next
    > request.
    >
    > In short...
    >
    > For each node, start a ReadAndProcess thread.
    > Wait for each thread to report back in the order they complete.
    > Once all threads have reported, sort, combine and report.
    >
    > How do PHP developers do this please?
    >
    > (If I were using C#, I'd create and start a Thread for each node. The
    > main thread would then enter a Monitor.Wait state as each worker
    > thread performed a Monitor.Pulse on completion, leaving data in a
    > shared object.)
    >
    > Bill, context switch![/color]

    There's no threading as far as I am aware but you can fork subprocesses:
    http://www.electrictoolbox.com/artic...ocess-forking/

    --
    Chris Hope | www.linuxcdmall.com

    Comment

    Working...