За последние 24 часа нас посетили 23018 программистов и 1259 роботов. Сейчас ищут 715 программистов ...

Могут ли php процессы общаться между собой? Или простая многопоточность может есть?

Тема в разделе "PHP для профи", создана пользователем mirosas, 26 авг 2018.

  1. mirosas

    mirosas Активный пользователь

    С нами с:
    17 июл 2015
    Сообщения:
    235
    Симпатии:
    5
    Запустил скрипт на обработку 28 гигабайт данных (в разжатом виде около 100 гигабайт). Имею следующую картину - загрузка HDD - 45%, загрузка CPU эквивалентна 55% одного ядра.

    Хотелось бы запустить один процесс на вытаскивание данных с диска в кеш виндоуса, а второй на их обработку, ну и второй процесс можно еще распараллелить, но надо бы чтоб эти процессы синхронизовались, чтобы первый процесс не убегал сильно вперед от второго.

    Запустил сейчас просто два процесса - один тащит данные в кэш виндоуса, второй вытаскивает данные из кэша и обрабатывает. Обработка пошла в 2 раза быстрее. Однако первый процесс скоро убежит вперед от второго и тогда кэш будет очищаться раньше, чем к нему обратится второй процесс.
     
  2. Abyss

    Abyss Старожил

    С нами с:
    12 дек 2015
    Сообщения:
    1.298
    Симпатии:
    218
    Адрес:
    Default city
    [vs] и mirosas нравится это.
  3. mirosas

    mirosas Активный пользователь

    С нами с:
    17 июл 2015
    Сообщения:
    235
    Симпатии:
    5
    Тоесть поднимать на пхп сервер, и к нему коннектить чайлдов.. интересно..))

    Наверное лучше средствами пхп сервер поднять, без сторонних библиотек?

    А многопоточность сложно реализуется? (чтобы внутри одного процесса все было). предполагается что код написан в стиле "все в кашу".
     
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    ещё раз спрашиваю
    часто у тебя такая процедура происходит?
     
  5. mirosas

    mirosas Активный пользователь

    С нами с:
    17 июл 2015
    Сообщения:
    235
    Симпатии:
    5
    В среднем 1 раз в 2 месяца.
     
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    тогда забей. Ебля с потоками того не стоит.
    но это не значит, что нельзя сделать это параллельно. Просто тебе нужно придумать как запустить пару скриптов одновременно так, чтобы они не мучали диск слишком сильно.
     
  7. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.553
    Симпатии:
    631
    pcntl это просто и эффективно. Общаться там не особо они могут, но параллелить задачи в самый раз.