Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

27.03.2009, 14:55
|
|
Banned
Регистрация: 19.06.2006
Сообщений: 1,239
Провел на форуме: 1469161
Репутация:
142
|
|
Это многопоточность ? ))
PHP код:
<?php
$urls = array();
$urls[0] = "http://www.wiw.ru";
$urls[1] = "http://www.google.ee";
$urls[2] = "http://www.google.ee";
$urls[3] = "http://www.google.ee";
$urls[4] = "http://www.google.ee";
$urls[5] = "http://www.google.ee";
$urls[6] = "http://www.google.ee";
$mh = curl_multi_init();
foreach ($urls as $i => $url) {
$conn[$i] = curl_init(trim($url));
curl_setopt($conn[$i], CURLOPT_RETURNTRANSFER, 1);
curl_multi_add_handle ($mh,$conn[$i]);
}
// start performing the request
do {
$mrc = curl_multi_exec($mh, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
while ($active and $mrc == CURLM_OK) {
// wait for network
if (curl_multi_select($mh) != -1) {
// pull in any new data, or at least handle timeouts
do {
$mrc = curl_multi_exec($mh, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
}
}
if ($mrc != CURLM_OK) {
print "Curl multi read error $mrc\n";
}
// retrieve data
foreach ($urls as $i => $url) {
if (($err = curl_error($conn[$i])) == '') {
$res[$i]=curl_multi_getcontent($conn[$i]);
} else {
print "Curl error on handle $i: $err\n";
}
curl_multi_remove_handle($mh,$conn[$i]);
curl_close($conn[$i]);
}
curl_multi_close($mh);
print_r($res);
?>
Погуглил и решил проверить.Вроде работает,но не отображается ничего таск менеджере.Это и есть многопоточность,или же это иллюзии?)
|
|
|

27.03.2009, 14:58
|
|
Постоянный
Регистрация: 16.04.2008
Сообщений: 889
Провел на форуме: 12942062
Репутация:
1550
|
|
Это мультикурл, запросы выполняются параллельно. По идее это многопоточность,но, насколько я знаю, в многопоточности нет. поправьте, если не так.
|
|
|

27.03.2009, 15:00
|
|
Banned
Регистрация: 19.06.2006
Сообщений: 1,239
Провел на форуме: 1469161
Репутация:
142
|
|
Как понять нет ?) Выигрыш-то есть какой-то ? =_=,ибо другое я не осилил.
|
|
|

27.03.2009, 15:04
|
|
Постоянный
Регистрация: 16.04.2008
Сообщений: 889
Провел на форуме: 12942062
Репутация:
1550
|
|
Сообщение от Велемир
Как понять нет ?) Выигрыш-то есть какой-то ? =_=,ибо другое я не осилил.
Выигрыш есть, бузксловно. Так скрипт проходится сразу по 10 линкам, а не по очереди
|
|
|

27.03.2009, 15:10
|
|
Banned
Регистрация: 19.06.2006
Сообщений: 1,239
Провел на форуме: 1469161
Репутация:
142
|
|
Ммм... Я вместо foreach() поставил цикл из for и решил выводить значение $mrc в первом цикле do while.Почему выводит -1?
$conn[$i] = curl_init(trim($urls[0]));
ЗЫ: Я это делал для того,чтобы один и тот же линк открыть n-ое число раз или послать n-ое число раз запрос.
Последний раз редактировалось Велемир; 27.03.2009 в 15:18..
|
|
|

27.03.2009, 15:34
|
|
Banned
Регистрация: 19.06.2006
Сообщений: 1,239
Провел на форуме: 1469161
Репутация:
142
|
|
Проблему решил простой конструкцией:
for($i=0;$i<100;$i++) {
$urls[] = $urls[0];
}
Чет заранее не дошло...
|
|
|

27.03.2009, 15:59
|
|
Reservists Of Antichat - Level 6
Регистрация: 23.05.2008
Сообщений: 756
Провел на форуме: 9257858
Репутация:
979
|
|
Это жалкое подобие 
|
|
|

27.03.2009, 16:16
|
|
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
Провел на форуме: 6075534
Репутация:
2731
|
|
Сообщение от Велемир
Проблему решил простой конструкцией:
for($i=0;$i<100;$i++) {
$urls[] = $urls[0];
}
Чет заранее не дошло...
Многопоточность - когда потоки идут ПАРАЛЕЛЬНО. А в твоем случае - цикл. Т.е. поток за потоком, т.е. ПОСЛЕДОВАТЕЛЬНО. Это НЕ многопоточность!
|
|
|

27.03.2009, 16:29
|
|
Reservists Of Antichat - Level 6
Регистрация: 22.01.2007
Сообщений: 616
Провел на форуме: 7452489
Репутация:
1359
|
|
Сообщение от mailbrush
Многопоточность - когда потоки идут ПАРАЛЕЛЬНО. А в твоем случае - цикл. Т.е. поток за потоком, т.е. ПОСЛЕДОВАТЕЛЬНО. Это НЕ многопоточность!
ок, а давай тогда пример языка, поддерживающего многопоточность, только сделай запуск потоков одновременно 
|
|
|

27.03.2009, 16:34
|
|
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
Провел на форуме: 6075534
Репутация:
2731
|
|
.bat
Запускаешь, н.п. несколько брутов дедов =)
+статья была на ачате о многопоточности в пхп.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|