Многопоточность PHP

12
S
На сайте с 15.07.2008
Offline
139
#11
malls:

А если процессов надо, ну например 10-к? в "// мы потомок" вставлять доп. ветвления?

Перед тем, как что-то куда-то вставлять, надо ответить на вопрос "Зачем?", который был проигнорирован. Чёткая постановка задачи отсутствует. Следовательно, идёт обсуждение абстрактного коня в вакууме и каждый пытается вывалить максимум умных слов, хоть как-то касающихся темы. Детский сад. Если уж решились на fork, то почитайте хотя бы, что это такое, как работает, чем отличается разделение процессов от многопоточности, чуть-чуть про межпоточную синхронизацию и тогда масса идиотских вопросов отпадут сами собой. Если лень или не хватает опыта, отдайте задачу _специалисту_ и не морочте голову ни себе, ни людям.

ES
На сайте с 24.09.2007
Offline
16
#12

вот почитайте статейку http://habrahabr.ru/blogs/php/40245/ может поможет :)

Работаю над: Сайт города Сочи (http://www.e-sochi.ru/) | Знакомства в Сочи (http://www.lovesochi.ru/) | VDS и VPS сервера под сателиты (http://www.virtualserver.ru/?asechka)
[Удален]
#13
malls:

А если процессов надо, ну например 10-к? в "// мы потомок" вставлять доп. ветвления?

Если вы вообще хоть раз писали IPC-проекты под никсами на чем угодно, у вас таких вопросов не возникало бы. Тут язык - всего лишь инструмент, а вам еще предстоит докопаться до сути



int pids[12]
for (i=0;i<12;i++)
{
pids=fork();
if (pids==0)
{
//Передать обработку другой программе или дочернему скрипту
}
if (pids==-1)
//ругнуться н то, что процесс создать нельзя и выйти

}

собсно в пхп все то же самое что и в си, только дописать pcntl_

Активней используйте exec, и тогда вообще проблем не будет.

Только вот зачем это надо вообще не ясно

SJ
На сайте с 16.03.2008
Offline
78
#14
malls:
Велика разница в реализациях - везде спорят и везде не понятно что лучше... Кто то за сокеты, кто-то за CURL Multi и т.п.

Так это ж не многопоточность... Это просто неблокируемые (асинхронные) сокеты.

Для парсинга, например, удобно - 100 запросов дернул, они одновременно ушли, пришли кто когда захотел, а мы только результат обрабатываем.

Вобщем, пока не сформулируете, зачем вам "многопоточность" - нормального ответа никто не даст.

Любимый хостинг (http://beget.ru?id=2902) How can we grow old when the soundtrack of our lives is rock-n-roll?
[Удален]
#15

не понятно, зачем ТСу многопоточность... вопрос звучал примерно "как сделать многопоточность ради многопоточности"...

по поводу переносимости и простоты написания многопоточных программ советую смотреть в сторону ява

lnx
На сайте с 26.07.2008
Offline
128
lnx
#16

Многопоточность можно реализовать с помощью связки jQuery + PHP

Вот статья, как это сделать

http://www.kachayev.ru/2008/10/10/jquery-ajax-parsim-pr-v-neskolko-potokov/

Так же я готовлю выпуск скрипта "Позиции в яндексе", в котором будет применена данная связка.

SJ
На сайте с 16.03.2008
Offline
78
#17
lnx:
Многопоточность можно реализовать с помощью связки jQuery + PHP

Клиентскую :)

Dreammaker
На сайте с 20.04.2006
Offline
569
#18

Я когда-то рекомендовал "клиентскую" многопоточность, но потом меня тыкнули носом в тот момент, что броузер в одно время может обрабатывать максимум кажется 2 подключения и собственно, тут мы упираемся в свои ограничения.

lnx
На сайте с 26.07.2008
Offline
128
lnx
#19
Dreammaker:
Я когда-то рекомендовал "клиентскую" многопоточность, но потом меня тыкнули носом в тот момент, что броузер в одно время может обрабатывать максимум кажется 2 подключения и собственно, тут мы упираемся в свои ограничения.

Да, проверил сейчас, есть проблемы в сафари и ие6, когда создаешь ч-з $.post больше 10 запросов сразу. Фаерфокс и опера справляются.

N
На сайте с 06.05.2007
Offline
419
#20

по умолчанию файрфокс залипнет на 15 ( network.http.max-connections-per-server ) или даже на 6 (network.http.max-persistent-connections-per-server)

Кнопка вызова админа ()
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий