
26.04.2009, 16:19
|
|
Участник форума
Регистрация: 28.07.2008
Сообщений: 199
С нами:
9361870
Репутация:
58
|
|
как правильно разделить работу скрипта на потоки если его работа связана с увеличением одного числа
пример:
PHP код:
$thr=5;
for ($t=1;$t<4000;$t=$t+5){
for(0..$thr) {
$trl[$_] = threads->create(\&func);
}
for(0..$thr) {
$trl[$_]->join;
}}
func{
$t++;
....
}
в func работа с этим числом(а точнее дамп таблы через лимит mysql)
или так?
PHP код:
@arr=(1..4000);
while(@arr){
for(0..$thr) {
$trl[$_] = threads->create(\&func);
}
for(0..$thr) {
$trl[$_]->join;
}}
}
func {
$t=shift(@arr);
...
}
оба способа работают но жутко тормозят. первый сжирает много памяти... или как оптимизировать хоть один? или есть более красивее варианты?
|
|
|