Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: как работает цикл while(){..}
 
 автор: tvv123456   (25.11.2009 в 23:34)   письмо автору
 
 

Здраствуйте! Думаю данный вопрос не составит труда для большинства но хочеться услышать действительно дельный ответ

При работе цикла wile(){действия}, сервер ждет пока выполниться ДЕЙСТВИЕ в цикле или же он ставит это действие в очередь и продолжает выполнение цикла.

Вопрос №2
503 ошибка возникает когда в очереди скапливается слишком много процессов? Приведенный выше цикл может привести к проблеме когда постоянно будет вылезать 503?

  Ответить  
 
 автор: Valick   (25.11.2009 в 23:50)   письмо автору
 
   для: tvv123456   (25.11.2009 в 23:34)
 

1) я могу ошибаться, но по-моему это зависит от "действия"
например оператор sleep заставляет цикл приостановиться.
2) понятия не имею что такое ошибка 503

  Ответить  
 
 автор: tvv123456   (25.11.2009 в 23:56)   письмо автору
 
   для: Valick   (25.11.2009 в 23:50)
 

>1) я могу ошибаться, но по-моему это зависит от "действия"
>например оператор sleep заставляет цикл приостановиться.

Это понятно, но все-таки по сути при выполнение цикла каждое действие доводиться до своего логического завершения или все-таки этот цикл ставит все действия в очередь(например надо отослать 100 000 писем функцией mail(....) допустим так:$a=0; while($a<100 001){mail(.....); $a++;} дак вот этот цикл поставит рассылку 100 000 писем в очередь или же будет ждать пока завершиться каждая отправка письма

  Ответить  
 
 автор: Valick   (26.11.2009 в 00:06)   письмо автору
 
   для: tvv123456   (25.11.2009 в 23:56)
 

поставит рассылку 100 000 писем в очередь или же
Фууу... спамер))))
понятия не имею, попробуйте провернуть такую авантюру и засеките время выполнения скрипта...

  Ответить  
 
 автор: tvv123456   (26.11.2009 в 00:21)   письмо автору
 
   для: Valick   (26.11.2009 в 00:06)
 

Про письма я так в качестве примера первое что в голову пришло. Меня интересует первоначальный вопрос

  Ответить  
 
 автор: tvv123456   (26.11.2009 в 00:54)   письмо автору
 
   для: Valick   (26.11.2009 в 00:06)
 

>попробуйте провернуть такую авантюру и засеките время выполнения скрипта
а разве время хоть как-то будет различаться в обоих случаях(когда операции ставяться в очередь или когда цикл последовательно их выполняет)

  Ответить  
 
 автор: sim5   (26.11.2009 в 04:09)   письмо автору
 
   для: tvv123456   (26.11.2009 в 00:54)
 

Выполнит цикл, пойдет дальше.

  Ответить  
 
 автор: tvv123456   (26.11.2009 в 16:48)   письмо автору
 
   для: sim5   (26.11.2009 в 04:09)
 

>Выполнит цикл, пойдет дальше.
Что это значит? Выполнить действие и начнет новое дествие или прогонит весь цикл поставив задачи в очередь.
Вопрос то вроде элементарный для тех кто знает. Я например не знаю, но хотел здесь узнать

  Ответить  
 
 автор: sim5   (26.11.2009 в 17:00)   письмо автору
 
   для: tvv123456   (26.11.2009 в 16:48)
 

Интерпретатор

  Ответить  
 
 автор: Trianon   (26.11.2009 в 17:46)   письмо автору
 
   для: tvv123456   (26.11.2009 в 16:48)
 

php сам по себе никакими задачами и очередями задач не занимается.
Если это делают инструменты, которые Вы в PHP Вы цикле применяете, так с них и спрос.

  Ответить  
 
 автор: GeorgeIV   (26.11.2009 в 18:12)   письмо автору
 
   для: tvv123456   (26.11.2009 в 00:54)
 

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

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования