fork порождение процессов

whirlwind

TDD infected, paranoid
Alexandre Не ну если unix + system task так я согласен и не спорю ни капли. Но вот для клиентских апликух все таки мультиплатформенная и простая многопоточность явы рулит. Просто достаточно сравнить спартанский посикс и винапи с его монструозными синхронизациями что бы застрелиться в попытках написать нечто платформонезависимое на сях. Может конечно гну тредс и вырулит но нафига этот гемор, когда в яве уже все есть и оно почти неотличимо от цпп. Тут кстате перл не рулит тоже ибо форк/сетсид в винде у него тока под цигвином работает.

-~{}~ 03.04.09 00:35:

Автор оригинала: Krishna
Я сказал многопроцессных, а не многопоточных.
Ты бы тоже шел вслед за тс и почитал что входит в interprocess communications. Каким образом процессы между собой общаются знаешь? Ну самый неандертальский способ - сигналы. А дальше?
 

Krishna

Продался Java
BoBka-altRUist
pcntl_ это просто враппер для сишних функций, в свою очередь являющихся врапперами для системных вызовов.
Поэтому, тебе не нужно акцентировать внимание именно на том, что ты пишешь на пхп, а изучать инфу по POSIX IPC в целом, о чм тебе уже писали тут.
Из литературы могу посоветовать Робачевского.

Писать демоны на пхп можно и нужно :)
Но, везде есть ньюансы. Плюсы пхп в скорости разработки значительно превосходящей Си. Минусы - производительность, неэффективное использование памяти (жрёт её много, течёт она некисло). Поэтому для сложной логики крутящейся в режиме демона или аппликейшен сервера длительное время пхп вряд ли подойдет.

Я вот как раз щас наваял небольшого многопроцессного демона, о предназначении которого мне не позволяют говорить правила этого форума :)

Так вот, от Доктрины в главном процессе пришлось отказаться напрочь, потому как создание и убиение соединения в цикле добавляет 250 килобайт размеру процесса, хотя казалось бы объекты удаляются после определенной операции. :)
Может в 5.3 дело наладится с новым сборщиком мусора.

не спорю Perl круче! вы счастливы?
Вероятно именно по этой причине в наши дни разработчика не Перле не найдешь днём с огнём :)
 

Alexandre

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

да и как правило те, кто пишут что-то системное - это платформенно зависимые задачи для определенного хостинга
определенной задачи

если, например мой кешер подходит для каких-то ьзадач - это не значит что он подойдет всем
 

Krishna

Продался Java
whirlwind
Ты про пайпы чтоли? Я решил, что речь о тредах.
Давай поконкретнее.
 

whirlwind

TDD infected, paranoid
ну я про поток который stream и которые в перле все равны =)

-~{}~ 03.04.09 00:48:

в перле нет кстате native threads я по этому даже и не подумал что могут быть непонятки :)
 

Krishna

Продался Java
Можно короткий пример, что можно делать с потоками в перле и чего нельзя на пхп?
 

Alexandre

PHPПенсионер
по большому счету с тредами вообще непонятки
во фряхи они более менее нормально реализуемы начиная с семерки
на линуксах - они вообще эмулируются через форки
более менее приемлемая ось qnx - но я не имел опыта программирования
источник
 

Krishna

Продался Java
в перле нет кстате native threads я по этому даже и не подумал что могут быть непонятки
Я с перлом так и не ознакомился - не было необходимости практической, да и теоретической я тоже не видел. Кроме широкой интеграции регулярок я не слышал о его других принципиальных преимуществах над пыхом.
Моё стороннее впечатление, что практически те же яйца, вид сбоку.
 

whirlwind

TDD infected, paranoid
PHP:
exit unless fork
:D

PS. так не честно :) давай не будем меня задрачивать а просто поверим на слово что системные фички на перле проще писать. заметь я не говорил что на пыхе нельзя писать демона. можно, но трудности начнутся очень скоро после старта
 

Krishna

Продался Java
Я не задрачиваю :)
И не собираюсь устраивать холивары - я лучше спать лягу пораньше)
Но и верить на слово тоже не могу, потому как бездоказательные утверждения даже от заслуживающих доверия источников нельзя брать на веру для общего случая. У всех есть свои предубеждения и склонности, навязанные определенным личным опытом, который влияет на объективность.

Что интересно, многие любят ломать копья на тему на чём круче писать демонов - на пыхе или на перле, но адекватных статей с примерами на эту тему я не видел, а жаль, с удовольствием почитал бы.
Вот например, питон я тоже не знаю :) Но, знаю, что в питоне есть злосчастная многопоточность, например, в отличие от пыха :)

-~{}~ 03.04.09 01:15:

Я, кстати, хочу акцентировать внимание, что я за выбор пхп для написания перла во-первых в том случае, когда программист решающий задачу уже неплохо знает пхп, в отличие от альтернатив.
А во-вторых, когда демон лишь часть проекта, написанного на том же пхп. Дальнейшее сопровождение продукта на одном языке таки попроще будет :)
Опять же, вторичное использование кода возможно для общей логической части веба и демона.
 

whirlwind

TDD infected, paranoid
что бы не быть голословным могу предложить соревнование: написать http-сервер с префорком. я пишу на перле, ты на пыхе. потом сравниваем кто больше потрудился. согласен? :) я повторяю - я не говорил нельзя. я говорил проще и удобнее.

-~{}~ 03.04.09 01:23:

ps не нравится мое задание предлагай свое. что бы не думали что у меня тут закрома ломятся от иписишных прог :D
 

Krishna

Продался Java
Проще и удобнее настолько, чтобы я сэкономил своё время изучив предварительно перл и написав на нём, вместо того, чтобы писать этот сервер на пхп?
Или же суммарная временная выгода станет очевидна лишь на десятом проекте?
:)
 

whirlwind

TDD infected, paranoid
слушай ну какбе если так смотреть то хз. зато я знаю что имея на столе перлкукбук ты решишь 99% системных задач. есть аналогичные произведения для пыха? я таких не знаю :)
 

Krishna

Продался Java
У меня щас нет возможности по времени, честно признаюсь :(
Хотя и было бы интересно сравнить, конечно.

-~{}~ 03.04.09 01:29:

слушай ну какбе если так смотреть то хз. зато я знаю что имея на столе перлкукбук ты решишь 99% системных задач. есть аналогичные произведения для пыха? я таких не знаю
Вот этот ответ для меня достаточно ясно описывает ситуацию :)
 

cDLEON

Онанист РНРСlub
Ересь, кстати. Указатели и ссылки - совсем не одно и то же, не надо нубов смущать.
+1
Дааалеко не тоже самое.
Год\два назад, когда я переходил на СИ чистый, я программил на 4-ом ПХП, используя ссылки практически везде. Даже ХМЛ парсер, который загоняет весь ХМЛ в дерево в виде массива,а потом работает с ним по принципу ДОМ, кишил ими.
Однако...Трудностей было много....
ЗЫ. делит, в СИ нет.
ЗЫ.ЗЫ. Динамическое распределение памяти - самая главная трудность для начинающего СИ программиста - к чему я в самом начале и стремился...
 

nerezus

Вселенский отказник
Можно короткий пример, что можно делать с потоками в перле и чего нельзя на пхп?
shared state: переменные, изменяемые в 1 потоке изменяются в другом.
 

whirlwind

TDD infected, paranoid
Автор оригинала: cDLEON
+1
Дааалеко не тоже самое.
Год\два назад, когда я переходил на СИ чистый, я программил на 4-ом ПХП, используя ссылки практически везде. Даже ХМЛ парсер, который загоняет весь ХМЛ в дерево в виде массива,а потом работает с ним по принципу ДОМ, кишил ими.
Однако...Трудностей было много....
ЗЫ. делит, в СИ нет.
ЗЫ.ЗЫ. Динамическое распределение памяти - самая главная трудность для начинающего СИ программиста - к чему я в самом начале и стремился...
Ващета я не имел в виду ссылки типа function foo(&$AllPossibleVariablesAnyOfThemMayBeChangedSometimesSomebodySomewhere)
Я имел в виду ссылки на объекты. Присваивание не ведет к копированию объекта. С указателями тоже самое. Хотя если ооп статический, то конечно это не вариант.
 
Сверху