За последние 24 часа нас посетил 16801 программист и 1644 робота. Сейчас ищут 899 программистов ...

Два php кода не выполняются параллельно

Тема в разделе "PHP для новичков", создана пользователем AntonMs, 8 дек 2015.

  1. AntonMs

    AntonMs Новичок

    С нами с:
    26 фев 2015
    Сообщения:
    46
    Симпатии:
    0
    Почему когда запущен цикл в файле 1 то в файле 2 выполнение php виснет до окончания работы цикла в файле 1 ?!
     
  2. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.250
    Адрес:
    там-сям
    поясни как ты запускаешь эти файлы

    Добавлено спустя 12 минут 53 секунды:
    Код (PHP):
    1. <?php
    2.  
    3. while(true) {
    4.     echo mt_rand(1, 1000000)."\n";
    5. }

    Код (Text):
    1. C:\> start php infiniteloop.php
    2. C:\> start php infiniteloop.php
    [​IMG]
     
  3. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Может многопоточное программирование имеется в виду? В php вроде есть, но как-то заковыристо реализовано, не пробовал. Да и надобности особой в вебе не вижу.
     
  4. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Он в настройке сервера не прописал количество одновременных подключений от одного клиента к серверу. По дефолту единичка. С двух разных адресов(или с двух браузеров на одном адресе), при этом, скрипт легко отработает параллельно.

    Автор, если ты боишься, что у тебя сервер работает в порядке очереди и что десять человек одновременно не смогут открыть страничку, потому что десятому придется ждать в 10 раз дольше, чем первому, то это не так, не волновайс :)
     
  5. AntonMs

    AntonMs Новичок

    С нами с:
    26 фев 2015
    Сообщения:
    46
    Симпатии:
    0
    Вообщем со страницы 1 запускаю ajax-ом парсинг в файле 2, потом пытаюсь обновить страницу 1 и она на вечной загрузке пока на странице 2 цикл не закончит выполнятся, Но если со страницы 1 удалить весь php код то во время парсинга запущенного в файле 2 она нормально загружается.
     
  6. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.250
    Адрес:
    там-сям
    Авотxyй. Вангую, что дело в страстной и противоестественной любви к сессиям. Сессионный файл открывается с блокировкой. Поэтому одновременный доступ от одного клиента невозможен.
    Выход: где не нужна сессия, не стартуй её. Либо session_write_close() ДО того, как начнешь длительны процесс.
     
  7. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Да, об этом я не подумал.

    Автор, где истина-то?
     
  8. AntonMs

    AntonMs Новичок

    С нами с:
    26 фев 2015
    Сообщения:
    46
    Симпатии:
    0
    Fell-x27, истинна в сессиях, буду спасать ситуацию session_write_close(). Стыдно что я не знал о этом нюансе и столкнулся только сейчас. Я понял что мои знания вообще очень поверхносны(на уровне видеокурсов и собственных экспериментов), читаю что-то о процессах и работе сервера, много не понятных терминов встречаю что не позволяет увидеть нужную картину полностью. Не знаю с чего начать детальное изучение магии веба) что-бы все постепенно понятно становилось и что-бы не много читать)
     
  9. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    с изучения HTTP_протокола. Серьезно. И, перед изучением магии веба, надо изучить магию программирования.
     
  10. AntonMs

    AntonMs Новичок

    С нами с:
    26 фев 2015
    Сообщения:
    46
    Симпатии:
    0
    Ты имеешь ввиду НЕ веб-программирование?
     
  11. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    AntonMs думаю он имел ввиду изучать как всё работает, обычно это написано в книгах для новичков, например про всю цепочку от запроса сайта в браузере до возврата результата, про HTTP протокол и всё такое.

    http://phpfaq.ru/newbie/na_tanke
     
  12. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    AntonMs думаю он подразумевает алгоритмизацию программирования. программирование без какого-либо четкого контекста - декстопа, утилит, игр, веба и тому подобное. когда ты понимаешь алгоритм то легче дается реализация задуманного. ну а если про веб говорить - то тут соглашусь с denis01 - без понимания того как разрешаются запросы ты мало чего добьешься.
     
  13. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Да.

    Это как у врачей. Сначала общее образование медицинское, а потом специализация. В итоге и у хирурга и у стоматолога и у терапевта идентичный фундамент, на который опирается специализация. Попытка сразу сходу начать "делать сайты за три дня" - это все равно что сходу учиться хирургии, минуя курсы по анатомии и прочую базу. Скальпелем резать научился. А понимать, что при этом происходит, не научился. Это даже представлять одновременно и страшно и смешно.

    Так и у программистов. Чтобы стать программистом игр, программистом графики, программистом нейросетей, программистом веба, программистом систем искусственного интеллекта, программистом 1С, программистом микроконтроллеров и тд, сначала нужно стать просто программистом. Это та причина, по которой я презираю всякие видеокурсы "как написать свою CMS за день", которые, по сути, учат "как перепечатать мой код с экрана за один день, не вникая в архитектурные решения, которые в нем лежат, не учитывая время, потраченное на разработку этих решений и вообще, не думая особо."
     
  14. AntonMs

    AntonMs Новичок

    С нами с:
    26 фев 2015
    Сообщения:
    46
    Симпатии:
    0
    Вот я и хочу вникнуть, а то возникает путаница иногда. Не видеть полноты картины и программировать не удобно для мозга во время решения задач)
     
  15. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    Попробуй отделить и по частям разбираться. Главный принцип - "разделяй и властвуй".