![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
Another |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 232 Регистрация: 17.6.2006 Репутация: -1 Всего: -2 |
Как разбить выполнения скрипта на потоки?
|
|||
|
||||
masp |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 34 Регистрация: 22.2.2007 Репутация: нет Всего: 2 |
через Мysql например и крон ....
например http://anarhist.name/scripts/est-li-mnogopotochnost-v-php/ Это сообщение отредактировал(а) masp - 9.5.2009, 00:23 |
|||
|
||||
nerezus |
|
||||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: нет Всего: 43 |
Дать ссылок на википедию, на кучу терминов типа многопоточности, многозадачности, определения процессов и т.д., чтобы не путаться в них? |
||||
|
|||||
gta4kv |
|
|||
![]() Walking around mad. ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1868 Регистрация: 25.7.2006 Репутация: нет Всего: 91 |
nerezus, зря ты так прям. Никто не говорит о настоящей многопоточности, а как эмуляция? =)
http://php.net/pcntl-fork Это сообщение отредактировал(а) gta4kv - 10.5.2009, 20:23 |
|||
|
||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: нет Всего: 43 |
gta4kv, нельзя. Это процессы.
А как же общие переменные, к примеру? пусть 1 поток по циклу увеличивает переменную, а второй ее печатает. + чтобы под виндой работало, т.к. я на винде разрабатываю на ноуте. |
|||
|
||||
gta4kv |
|
|||
![]() Walking around mad. ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1868 Регистрация: 25.7.2006 Репутация: нет Всего: 91 |
Я вообще хз, у меня есть только кусочек теории. Подобными глупостями я на PHP не занимаюсь.
|
|||
|
||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: нет Всего: 43 |
gta4kv,
|
|||
|
||||
icewind |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 393 Регистрация: 11.4.2009 Где: Ростов-на-Дону Репутация: нет Всего: 20 |
Послушайте nerezus, и не ищите статьи энтузиастов с громкими названиями "МНОГОПОТОЧНОСТЬ НА PHP!!!!" Это по определению не возможно. Если очень нужно, используйте соответствующий инструмент, который обладает подобным функционалом. И не путайте потоки и процессы. От форканья процессов толку много не будет.
-------------------- ![]() |
|||
|
||||
mogul82 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 282 Регистрация: 20.11.2008 Репутация: -2 Всего: -5 |
А мне говорили можно.
С пшп 5 мона мол с интерпритатором работать (и изменять код интерпретатора) и там можно отправить кусок кода на др поток. А там уж как операционка захочет. Это сообщение отредактировал(а) mogul82 - 16.5.2009, 23:11 |
|||
|
||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: нет Всего: 43 |
Если по жизни будешь пытаться выдать "бабка в трамвае сказала" за правду, то ничего не выйдет. Просто совет. |
|||
|
||||
eXed |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 12.7.2007 Репутация: 1 Всего: 1 |
А зачем WEB языку PHP многопоточность?
В случаях, когда нужно что делать быстрей и не дожидаться запросов к Вебсерверу? Существует, как сказали выше базы данных и cron, но если очень хочется, можно запускать на сервере подобный скрипт:
правда не факт, что он не съест все ресурсы системы ![]() Вот более полное описание данного процесса Многопроцессовые демоны на PHP Это сообщение отредактировал(а) eXed - 22.7.2009, 15:34 |
|||
|
||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: нет Всего: 43 |
Факт в том, что она нужна. Запомни: если что-то не нужно тебе. это не значит, что оно не нужно никому. А еще сходи-ка ты на википедию и почитай определение терминов, а то и дальше будешь путать потоки с процессами. |
|||
|
||||
eXed |
|
||||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 12.7.2007 Репутация: 1 Всего: 1 |
Хочется одним запросом к скрипту обращаться сразу к 10 сайтам в 10 потоках и хавать новости? Или одним потоком генерить темплейт, а другим контент и на выходе это совмещать. Здорово конечно, но что мы получим при тысячах запросов к таким скриптам, как производить отладку и т.д. ? В данном случае имеется ввиду PHP+WebServer запуск по запросу, а не о резидентном консольном приложении.
Я не путаю понятия, хотя на вики сходил... "Многопоточность (как доктрину программирования) не следует путать ни с многозадачностью, ни с многопроцессорностью, несмотря на то, что операционные системы, реализующие многозадачность, как правило реализуют и многопоточность." ![]() ![]() |
||||
|
|||||
nerezus |
|
||||||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: нет Всего: 43 |
Имел то опыт работы с потоками?) |
||||||
|
|||||||
eXed |
|
||||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 12.7.2007 Репутация: 1 Всего: 1 |
Наткнулся на статью В статье описана организация мультизапросов средствами PHP с использованием библиотеки cURL
Имею опыт программирования на C#. |
||||
|
|||||
Riddick |
|
||||
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 24.6.2007 Репутация: нет Всего: нет |
На пхп многопоточности нет ФАКТ.
Как вариант по никс*
В этом случае остается контролировать выполнение каждого экземпляра скрипта, что весьма неудобно и этот вопрос я думаю решаем с помощью Ajax (как вариант). Для особо придирчивых уточняю что понятьи поток здесь рассмотрено в контексте "Экземпляр скрипта"; Поехали дальше. Многие пишут под виндовозом. С виндой есть другой вариант - а именно командная строка
В этом примере каждый экземпляр скрипта будет открыт в видимой командной строке, что позволяет смотреть работу скрипта. Вот типа и все. Есть еще вариант запускать экземпляры скрипта через сокеты, где количество сокетов будет равно "количеству потоков"; Да и насчет форков. Сильно не усердствуй с ним на пхп (сильная нагрузка на сервер) - это прерогатива Perl. ![]() |
||||
|
|||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: нет Всего: 43 |
Riddick, ты путаешь понятия потока и процесса. Это все равно, что путать палец с... мордой.
|
|||
|
||||
Riddick |
|
|||
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 24.6.2007 Репутация: нет Всего: нет |
Я смотрел на контекст вопроса ТС, и ему думаю подойдет то что я предложил.
А вот как он рассмотрит это - дело уже его. To -> nerezus Я же сказал на пхп многопоточности нет - то что я описал это эмуляция - но смотря чего и как на это смотреть. Если рассматиривать правильно то каждый раз мы порождаем новый процесс - работающий в один поток - отсюда можно сделать вывод (и он правильный)что мы занимаемся не многопоточностью а плодим процессы. С другой стороны если рассмотреть скрипт порождающий процессы (а процесс работает в один поток) основным и в конечном итоге порождающий потоки(пусть с возникновением новых процессов), то выходит что скрипт многопоточен. Я здесь не пытаюсь оспорить понятия многопоточности так как многопоточность должна быть и есть в одном процессе, а у нас процессов столько же сколько и потоков, просто если подойти к вопросу философски то все можно "притянуть за уши"; |
|||
|
||||
nerezus |
|
||||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: нет Всего: 43 |
Процессы - это эмуляция потоков? Порой кажется, что я в своей жизни пропустил что-то важное... А может и не я.
|
||||
|
|||||
Riddick |
|
|||
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 24.6.2007 Репутация: нет Всего: нет |
![]() |
|||
|
||||
Pori |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 50 Регистрация: 10.9.2007 Репутация: нет Всего: 1 |
nerezus, как вариант, юзать темп файл для хранения общих переменных ;)
Чего ты так взъелся? Никто ж с тобой не спорит, что нету на PHP многопоточности. Но зайди на любую фриланс биржу - каждому второму заказчику скрипта на PHP подавай многопоточность. Им же не объяснишь =) Вот и приходится выкручиваться как получиться, а не как теоретически правильно ;) |
|||
|
||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: нет Всего: 43 |
Pori, и? каждую строчку оборачивать кодом с чтением этого файла? С блокировкой его?
Так если он блокируется, многопоточности то и не будет ;) А если не блокируется - то данные испортятся.
|
|||
|
||||
Pori |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 50 Регистрация: 10.9.2007 Репутация: нет Всего: 1 |
Конешн с блокировкой, а как иначе? =)
Тормозить процесс пока не получит доступ к файлу, а потом вперед. Не известно же в какой момент процессы запросят доступ к файлу. Может, правдо, и повезти - выстроятся в конвейер ;) Да, конечно, это не многопоточность. Да и, как правило, для того, что требуют заказчики с пометкой "должно работать многопоточно" многопоточность совершенно не требуется. Недавно попался мне такой - я предложил в качестве многопоточности запускать скрипт несколько раз по крону - согласился ;) Вот и вся многопоточность на PHP. |
|||
|
||||
nerezus |
|
||||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: нет Всего: 43 |
|
||||
|
|||||
IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 1 Всего: 73 |
Предложим вместо нее девственницу ![]() ![]() -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
NewDima |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 922 Регистрация: 20.2.2006 Где: <?here?> Репутация: нет Всего: 12 |
Есть одна интересная вещь
|
|||
|
||||
Pori |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 50 Регистрация: 10.9.2007 Репутация: нет Всего: 1 |
ну так мы это, вроде, здесь разобрали. Просто там все структурированно и довольно неплохо написано
|
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Для профи | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |