Форум программистов, компьютерный форум, киберфорум
PHP: сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 10.10.2013
Сообщений: 11

Многопоточность PHP

12.10.2013, 22:27. Показов 2797. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. Помогите пожалуйста. В PHP практически нуб. Состряпал вот такой скрипт.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
$qweqwe = file_get_contents("2.txt");
$arr = explode ("\n", $qweqwe);
 
for($i = 1; $i < count($arr); $i++)
  {
  
        $arr [$i];
    $ch = curl_init(); 
        curl_setopt($ch, CURLOPT_URL,'http://11111/contest/aaaaaa');
        curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_TIMEOUT, 20);
     curl_setopt($ch, CURLOPT_PROXY, "$arr[$i]");
        curl_setopt($ch, CURLOPT_POSTFIELDS, "op=%D0%93%D0%BE");
 
$headers = array
(
'Content-Type: application/x-www-form-urlencoded',
'Content-Length: 119',
);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
        $otvet = curl_exec($ch);
        curl_close($ch);
 
}
return $otvet;
?>
Все работает, все отлично! Но хотелось бы чтобы это было многопоточно. Чтобы прокси брались по 5-10 штук и скрипт выполнялся. Подскажите пожалуйста как переделать или в каком направлении копать.

PS: запустить несколько раз этот - не вариант.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.10.2013, 22:27
Ответы с готовыми решениями:

Многопоточность PHP
Всем привет. Цель: - многопоточность - максимальная производительность - без дополнительных модулей В общем, я хочу...

Многопоточность в PHP. Как проверить процесс?
Запускаю некоторое количество процессов, записываю их в массив. Далее начинаю их проверять. Для этого существует цикл, в теле которого...

Многопоточность PHP
Добрый день. Поставили задачу написать скрипт почтовой рассылки на php. windows. Рассылку реализую с помощью phpmailer(). Необходимо,...

24
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
21.10.2013, 20:35
Студворк — интернет-сервис помощи студентам
В руби и питоне вообще параллельно не могут два треда выполняться. И если запустить просто вычисления в 1 поток или в 2, то 2 потока проиграют в скорости.
Но что если у вас один поток ждёт данные, как у ТС, с интернета, или из БД, он будет просто простаивать. Вот в таких случаях, потеря времени на переключение потков, окупается ассинхронностью вычислений.

А в пхп не сказано про такие ограничения, написано что там полноценные потоки. Так что прирост производительности будет, если у Вас более 1го ядра или процессора. 1 процесс без потоков, не будет обрабатываться 2 ядрами.
Разговор не о бесплатных хостингах, на которых дают 1 ядро и 100мгц частоты
0
 Аватар для AndreyDyakonov
122 / 120 / 7
Регистрация: 21.04.2013
Сообщений: 615
21.10.2013, 20:42
Цитата Сообщение от OnYourLips Посмотреть сообщение
Можно запускать количество процессов по количеству процессоров и в каждом из них иметь потоки.
Дык я о чем говорю! Вот только сколько их, процессоров в штуках, тебе дадут на сервере? 1/10000шт. или больше в сто раз? 1/10шт? А нужно чтобы по штуке на поток... Каждому клиенту по 1 процессору(2,4,8 в зависимости от количества тредов). В случае 4-х ядерного сервера, выходит два сервера на клиента запустившего 8 тредов. Только тогда в плане производительности это будет иметь смысл. Каждому клиенту - по паре серверов, дороговато! Можно пускать больше потоков чем есть количество процессоров, только не надо говорить что это даст прирост производительности. кроме переключения между потоками тормозят еще блокировки семафоры и тд.. нету никакой реально полезной многопоточности в пыхе
0
508 / 358 / 13
Регистрация: 12.03.2012
Сообщений: 1,896
21.10.2013, 20:47
Цитата Сообщение от AndreyDyakonov Посмотреть сообщение
Вот только сколько их, процессоров в штуках, тебе дадут на сервере? 1/10000шт. или больше в сто раз? 1/10шт?
Столько, сколько есть. Больше, чем есть, дать не смогут. Арифметика - друг человека.

Цитата Сообщение от AndreyDyakonov Посмотреть сообщение
В случае 4-х ядерного сервера, выходит два сервера на клиента запустившего 8 тредов.
Плохо считаешь. В случае 4-х ядерного сервера, выходит один сервер на клиента запустившего 4 тредов.
0
 Аватар для AndreyDyakonov
122 / 120 / 7
Регистрация: 21.04.2013
Сообщений: 615
21.10.2013, 20:54
Цитата Сообщение от OnYourLips Посмотреть сообщение
Плохо считаешь

Не по теме:

плохо читаешь



Добавлено через 45 секунд
как то так было
Цитата Сообщение от AndreyDyakonov Посмотреть сообщение
В случае 4-х ядерного сервера, выходит два сервера на клиента запустившего 8 тредов.
0
 Аватар для JxF-TEAM
122 / 122 / 27
Регистрация: 22.10.2013
Сообщений: 425
22.10.2013, 12:47
мб не потеме ( мб уже ответ был дан я все не перечитывал )

я както делал на php много поточный скрипте ( скрипты точнее )

надо было на udp сокетах связаттся с сервером.. отправить пакет получить 3-и.. таймаут на потоке 2сек.. список из 2,7к сервов 10% которых еще и неработала..

если в 1-н скрипт делать будет на 10+ минут..

вот я создал 2-й скипт котрый в гет параметрах получал адрес серва и название файла.. далее конектился с сервом получал инфу структурировал как надо и в файл ( с полученым именем )

а в 1-м скрипте в цикле вызывается 2-й скипт ( вызыв на скоетах , можна и на system / exec сделать )

в итоге 2,7к сервов за 18-25 сек обходил с 70-90% загрузкой цп апачем

в 1- м скрипте также сохранялся массив имен файлов .. потом проверялся на существование файл и если был открывался и в базу.. на эту часть уходило 20-25 сек
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.10.2013, 12:47

Многопоточность на php
Доброго времени суток уважаемые форумчане. Есть задача максимально быстро выполнить однотипные действия с данными. Есть для этого VPS....

Асинхронные запросы, многопоточность PHP
Есть websocket сервер, к которому подключается несколько клиентов. От каждого может исходить несколько запросов в секунду. Все это...

Многопоточность NullPointerException
Кто-нибудь может подсказать, почему при k=2 и z=1 выбрасывается ошибка NullPointerException и как побороть данную проблему? class...

Многопоточность
Столкнулся с проблемой, что не совсем понимаю, что такое многопоточность. С многозадачностью все понятно - несколько процессов выполняются...

Многопоточность
Доброго времени. Не могу сообразить как сделать: Задача: Методы класса Main вызываются из разных потоков. Нужно получить статистику...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
25
Ответ Создать тему
Новые блоги и статьи
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации: 1. Вернуть возможность использования знаков | 1 l I;. . .
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru