Многопоточные вычисления в PHP

Есть множество подходов к многопоточности и у каждого подхода свои преимущества и недостатки. Подходы:

  • Создаем общедоступную очередь, например, на Beanstalk, RabbitMQ или Redis или еще на чем-нибудь. Создаем PHP скрипт, который будем запускать из консоли несколько раз, создавая нужное количество процессов. Это решение наиболее универсальное.
    • Плюсы. Хорошая масштабируемость на несколько серверов, отказоустойчивость.
    • Минусы. Может быть неудобно или непрозрачно с точки зрения архитектуры. Если в обработке данных несколько “узких горлышек”, то возможно, понадобится предусмотреть несколько очередей.
  • Создавать потоки через Curl, для такого решения есть даже проект на гитхабе.
    • Плюсы. Мне неизвестны.
    • Минусы. Ненадежно.
  • Использовать popen().
    • Плюсы. Просто с первого взгляда.
    • Минусы. Сложно организовать равномерную загрузку ядер. Трудности в создании общей очереди.
  • Написать собственное расширение для PHP и пользоваться им.
    • Плюсы. Можно сделать полный фен шуй.
    • Минусы. Затратно.
  • Воспользоваться расширением PCNTL. Насколько это удачное решение, возможно, кто-то расскажет в комментариях.
  • Воспользоваться готовым расширением pthreads.
    • Плюсы. Надежность. Можно прятать многопоточное поведение внутри модуля, не выносить на уровень архитектуры. Простота в создании общей очереди.
    • Минусы. Нельзя масштабировать на несколько серверов.

Источник: 1

Оцени публикацию:
  • 0,0
Оценили человек: 0

Похожие статьи:

Справочники и учебники:


Предложения и пожелания:
Ваше имя:
Ваш E-mail:
Введите изображенные цифры:
Captcha
Главная
X

youtube.com/watch?v=7hFivbgIEqk

При полном или частичном использовании материалов данного сайта, ссылка на сайт "yapro.ru" обязательна как на источник информации.
Автоматический импорт материалов и информации с сайта запрещен.
Copyrights © 2007 - 2017 YaPro.Ru

Главная » Веб-мастеру » PHP »