Не помню, но кто-то ещё жавно сказал мне, что-то такое: "запомни, чел, php - однопоточный язык", но правда ли это? Если правда, то чем отличается обычный php от zend версии.
Не совсем так, вычисления в php вполне себе можно производить в несколько потоков, правда понадобятся пляски с бубном, но тем не менее... Вероятно здесь имелось в виду то, что функции внутри php-файла выполняются строго последовательно - отсутствует асинхронность как в том же JavaScript.
Кирилл Несмеянов, в новых версиях php вроде бы из под коробки идет, но раньше не было и те, кто хотел многопоточность, тем приходилось изворачиватся применяя разные лайфхаки.
Кирилл Несмеянов, многопоточность - это про потоки, асинхронность - это работа функций, не совпадающих во времени. Асинхронные функции всегда выполняются в одном потоке.
kafkiansky, понятно. А я всегда думал, что многопоточность == асинхроности. Например, если обращаюсь handler1.php, handler2.php через AJAX делегируя части задачи на них, то по идее мой код будет выполнен в разных потоках php и при этом результат я получу и обработаю асинхронно.
Асинхронность не многопоточность и реализовать ее гораздо легче. Но чтобы не изобретать велосипед, есть библиотека ReactPHP. А для многопоточности есть pthreads.
Почитайте про pthreads. Что касается "Zend версии", то наверное имеется ввиду, что PHP должен быть скомпилирован с Zend Thread Safety, это обязательно для pthreads.