Re: PHP Multi-threading



George Maicovschi wrote:
On Mar 31, 8:20 pm, Jerry Stuckle <jstuck...@xxxxxxxxxxxxx> wrote:
George Maicovschi wrote:
On Mar 31, 5:45 pm, Jerry Stuckle <jstuck...@xxxxxxxxxxxxx> wrote:
George Maicovschi wrote:
Hey Erwin,
It's just an experiment of mine, nothing production-related... YET :-)
The thing goes like this. I have a script that's supposed to do an
action on lets say 100 different hosts in the same time. So I need
multi-threading ar a way to emulate it. My approach was this:
$threads=array();
$responses=array();
foreach ($hosts as $host)
$threads=fopen('http://domain.with.the.script/path/to/script/
script.php?op=action&host={$host}','r');
foreach ($threads as $thread_id=>$thread)
if ($thread)
{
$responses[$thread_id]=''
while (!feof($thread))
$response[$thread_id].=fgets($thread);
fclose($thread);
}
So now the threading part is emulated through Apache, making
concurrent requests to the script.php that contains the actions to be
undertaken and specifying the host that I want to be the target of the
actions.
Basically that's my approach to multi-threading emulation in PHP.
So...any suggestions/ideas/anything? :-)
I am really curious about other approaches because this multi-
threading thing in PHP seems rather disturbing because of it's
absence. :-)
Cheers,
George Maicovschi.
Where are you creating new threads?
I agree with Erwin - if you need to use threads, PHP isn't a good way to
go. If you really need this and it's has to be in PHP, I'd look at
spawning multiple processes off and do the work in batch mode, perhaps
saving the results in a database.
But personally I'd be looking at another language such as Java or C/C++
which has good thread support.
--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstuck...@xxxxxxxxxxxxx
==================
Yeah, I would go the C way myself, but it has to be PHP...
That's a shame because you're trying to use a hammer when you need a
screwdriver.

There really is no *good* way to do it in PHP. About the only way
you're going to be able to do it is like I suggested above - spawn off
multiple processes to do the work and collect the results in a database
or similar.

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstuck...@xxxxxxxxxxxxx
==================

Well it seems I might be getting some results using fsockopen() on the
host the script is hosted for each 'thread', so I might be able to
achieve a pseudo-multithreading...

I'll post my findings here.


Yea, but the problem is fsockopen() is synchronous and PHP won't return until the script is completed. So you're not actually multithreading - just creating a lot of overhead with multiple requests to the same script.

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex@xxxxxxxxxxxxx
==================

.



Relevant Pages

  • Re: PHP Multi-threading
    ... multi-threading ar a way to emulate it. ... undertaken and specifying the host that I want to be the target of the ... Basically that's my approach to multi-threading emulation in PHP. ... host the script is hosted for each 'thread', so I might be able to ...
    (comp.lang.php)
  • Re: Can I ask a REALLY stupid question about PHP?
    ... had to be a .php file, and I checked that my host ... Zubrag showed me how to save a piece of PHP script on ... I created an HTML page, ...
    (comp.lang.php)
  • Re: Can I ask a REALLY stupid question about PHP?
    ... had to be a .php file, and I checked that my host ... Zubrag showed me how to save a piece of PHP script on ...
    (comp.lang.php)
  • Re: PHP.INI Question - Maybe
    ... Found out from the host that I must end the script in .php in order ... > try calling echo without the parentheses - echo is a language ...
    (comp.lang.php)
  • Re: [PHP] PHP console script vs C/C++/C#
    ... My script is taking a longer time to execute than I want. ... I prefer to write in PHP because that is what I know best. ... This is why I am thinking about rewriting my whole script in a C language. ... Perhaps there are different methods I could be using to speed up execution. ...
    (php.general)