 |
[:NetFAQ://] |
 |
 |
[:NetFAQ://] |
 |
 |
[:NetFAQ://] |
 |
 |
[:NetFAQ://] |
 |
|
 |
Создание дочерних процессов в PHP(fork)
|
 |
|
Создание дочерних процессов в PHP(fork)
Многие программисты, перешедшие на PHP с других языков(С++,Java и т.д.) Знают чем полезна возможность порождения дочерних процессов. Для остальных:порождение дочерних процессов позволяет организовать выполнение различных задач в фоновом режиме. К примеру: сбор новостей с rss лент.
Основная суть:
Пользователь заходит на сайт. Вызывается php скрипт, который формирует страницу сайта. В некоторой точке скрипта вызывается функция pcntl_fork(), которая порождает второй(дочерний процесс). Дочерний процесс может выполнить другие задачи, не влияя на ход работы родительского процесса.
Пример использования:
$pid = pcntl_fork();
if ($pid == -1) {
die('не получилось');
} else if ($pid) {
// это родительский процесс
print_index_page(); //продолжаем дальше работать на пользователя
} else {
// дочерний процесс
slave_the_world();//работаем на себя
}
Одно важное замечание. Код который будет расположен после if будет выполняться обеими процессами!!!
Опубликовано: 2008-06-17 18:07:28 ShadX
Комментарии
| z |
zzzzzzzzz
|
|
| asd |
asd
|
|
| fff |
fdfdf
|
|
| Пользователь |
"Пользователь заходит на сайт. Вызывается php скрипт, который формирует страницу сайта. В некоторой точке скрипта вызывается функция pcntl_fork()"
Бля не пишите хуйню. pcntl_fork() вы можете вызвать только в cli
|
|
| 1 |
сам не пиши, прекрасно работает
|
|
|
так себе
|
|
| вась |
|
|
| ина 11111> |
ина 11111>
|
|
| aaa |
aaa
|
|
| aaaaaa |
aaaaaa
|
|
| demon |
если php как модуль апача, то форк работать не будет. канает только cgi
|
|
|
Пользователь, тебя поимели
|
|
|
Оставить комментарий:
|
|
|
 |
[:NetFAQ://] |
 |
|
 |
[:NetFAQ://] |
 |
 |
[:NetFAQ://] |
 |
 |
[:NetFAQ://] |
 |
 |
[:NetFAQ://] |
 |
|