Речь пойдёт не о Java
Так же не будет сказано зачем это надо.
Глупый вопрос зачем это для веб проектов - если слово NIO не о чём не говорит и разницу между процессом и потом не видно то в принципе незачем. (дальше можно не читать)
Все неадекватные фантазирующие о многопотомном php -> сюда!
Многопоточность свойство платформы или приложения, состоящее в том, что процесс, порождённый в операционной системе, может состоять из нескольких потоков, выполняющихся «параллельно», то есть без предписанного порядка во времени. При выполнении некоторых задач такое разделение может достичь более эффективного использования ресурсов вычислительной машины.
Многозадачносьть свойство операционной системы или среды выполнения обеспечивать возможность параллельной (или псевдопараллельной) обработки нескольких процессов.
Основные отличия многопоточности и параллельной многозадачности в цене запуска. Ресурс затрачиваемый на запуск процесса (так же называемого воркером) в разы больше ресурса на запуск потока (threads/нить). И это понятно т.к. в одном процессе могут быть запущены несколько потоков.
При этом есть свои нюансы работы с памятью и сборщиками мусора и т.д.
На изучения этого вопроса подтолкнул разговор, в котором один "программист" (два года как то работающий на перле) сказал, что "в
Perl многопоточности нет и никогда не было!"
Мне стало интересно сравнить
препроцессор html (php) и
язык программирования (perl). Сравнивать я буду со своей субъективной стороны - с серверной части т.к. меня в первую очередь волнует этот момент.
Как то меня смутила фраза
отсутствия в perl потоков - потому как при компиляции perl есть флаг "-Dusethreads"
Я не разработчик, и особо не испытываю симпатий к perl. Но результат говорит сам за себя (хотя может на продакшн php себя будет вести по другому?).
Для начала я просто, банально запустил бесконечный цикл на php и на perl
Цикл одинаковый как видно из приведённого кода
Вообще я пытался увидеть один процесс на одном ядре с "трейдовым" скриптом в 600 потоков и обнаружил то что на скрине чисто случайно.
Процесс ловил через (ps)
Запуск происходит в один поток и один процесс
#Perl
for (my $i=0; ; $i++) {
print "$i\n";
}