2015-10-10 2 views
-1

Я хочу выполнить несколько циклов за один раз. Для цикла состоит из операций сокета. Я хочу отправить запрос и получить ответ с помощью сокета. Текущая проблема заключается в том, что сначала выполняется цикл First for, а затем второй. Как мне выполнить одновременно? Пожалуйста, объясните на примере. Это код:PHP многопоточность

<?php 

for($i=0;$i<1000000;$i++) 
{ 
    //Soecket operations 
} 

for($i=0;$i<1000000;$i++) 
{ 
    //Soecket operations 
} 

for($i=0;$i<1000000;$i++) 
{ 
    //Soecket operations 
} 

for($i=0;$i<1000000;$i++) 
{ 
    //Soecket operations 
} 
for($i=0;$i<1000000;$i++) 
{ 
    //Soecket operations 
} 
for($i=0;$i<1000000;$i++) 
{ 
    //Soecket operations 
} 
for($i=0;$i<1000000;$i++) 
{ 
    //Soecket operations 
} 
for($i=0;$i<1000000;$i++) 
{ 
    //Soecket operations 
} 
for($i=0;$i<1000000;$i++) 
{ 
    //Soecket operations 
} 

>

Как я могу выполнить их все сразу?

Спасибо!

+0

Что вы пробовали? Простой поиск в Google даст вам достаточно ответов. В том числе этот: http://stackoverflow.com/questions/70855/how-can-one-use-multi-threading-in-php-applications –

+0

Я пробовал. Но я не хочу использовать подход ООП. – Mark

+0

Почему бы не использовать ООП, если это простой и простой способ справиться с вашей проблемой? –

ответ

1

Сценарий сценария сценария с вызовами внутри php-скриптов.

bash-start.sh

#!/usr/bin/env bash 

    /bin/ps -auwx | /usr/bin/grep custon-name-php-file.php | /usr/bin/awk '{print $2}' | /usr/bin/xargs kill -9 

    for i in `seq 1 15`; # 15 - count threads 
    do 
     echo $i 
     /usr/sbin/daemon custon-name-php-file.php $i 
    done 

custon-имя-PHP-file.php

#!/usr/local/bin/php 
<?php 

$thread = $_SERVER['argv'][1]; 

for($i=0;$i<1000000;$i++) 
{ 
    //Soecket operations 
    echo $thread."). ".$i.PHP_EOL; 
} 
+1

Будет ли оно работать на фоне? – Mark

+0

Да, он будет работать на фоне. –

+0

Что такое демон btw ?? – Mark

Смежные вопросы