Aureliano, threads, em Perl, são um assunto polêmico :P<div>Se o aplicativo que você está desenvolvendo for "I/O-bound", recomendo AnyEvent; já se for "CPU-bound", recomendo fork (no exemplo que citou, Parallel::ForkManager cai como uma luva).<br clear="all">

<br>ABS()<br><br>
<br><br><div class="gmail_quote">On Sun, Mar 11, 2012 at 22:43, Aureliano Guedes <span dir="ltr"><<a href="mailto:guedes_1000@hotmail.com">guedes_1000@hotmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">




<div><div dir="ltr">
Na verdade, eu acho que minha pergunta que foi feita de forma errada.<br>Eu queria, por exemplo, dar ping em um servidor ate derruba-lo, contudo eu queria para isso enviar digamos, 5 pacotes simultaneos,<br>inves de enviar 1 por vez.<br>

<br>Mas eu entendi quanto a usar o laço, talvez eu realmente faça isso. Contudo,<br>usar <br><div class="im"><br>for (my $i =1; $i <= 5; $i++){<br>my $thr = threads->create(\&sub1);<br>
}<br><br></div>não é o mesmo que usar apenas<div class="im"><br><br>for (my $i =1; $i <= 5; $i++){<br></div>&sub1;<br>
}<br><br>se a função do meu sub1 for apenas enviar pacotes a um servidor???<br><br><div><div></div><hr>From: <a href="mailto:bruno.buss@gmail.com" target="_blank">bruno.buss@gmail.com</a><br>Date: Sun, 11 Mar 2012 22:29:06 -0300<div class="im">

<br>To: <a href="mailto:rio-pm@pm.org" target="_blank">rio-pm@pm.org</a><br>Subject: Re: [Rio-pm] Multi threads<br><br></div><div><div class="h5"><div>2012/3/11 Aureliano Guedes <span dir="ltr"><<a href="mailto:guedes_1000@hotmail.com" target="_blank">guedes_1000@hotmail.com</a>></span><br>

<blockquote style="border-left:1px #ccc solid;padding-left:1ex">




<div><div dir="ltr">
Opa, Bruno, valeu a resposta, mas vamos ver se eu entendi<br><br> eu poderia fazer assim:<br><br><pre><ol><li>    <a href="http://perldoc.perl.org/functions/use.html" target="_blank">use</a> <span>threads</span><span>;</span></li>



<li> </li><li>    for (my $i =1; $i = 5; $i++){<br></li><div><li>    <a href="http://perldoc.perl.org/functions/my.html" target="_blank">my</a> <span>$thr</span> = <span>threads</span><span>->create</span><span>(</span>\<span>&sub1</span><span>)</span><span>;</span></li>



<li><br></li><li><a name="1360493321c08c12_13604645bef1a690_sub1"></a>    sub <span>sub1</span> <span>{</span></li><li>       <span></span></li><li>    <span>}</span></li><li><span>}<br></span></li></div></ol></pre>Mas assim não ocorreria  execução simultanea, certo? Pois cada execução iria ocorrer uma por vez a cada contagem do contador.<br>



</div></div></blockquote><div><br clear="all">A resposta para sua pergunta: errado.<br>Porém sua explicação está "correta"... a cada iteração do for, será criada uma nova thread, então você terá disparado diversas threads até o final do for.<br>



<br>Agora, o ponto em ser simultâneo é um pouco mais complicado: depende de quantos cores tem seu sistema (se tiver menos cores que threads utilizadas, então as threads estarão executando de forma concorrente e não simultânea), depende do escalonador de tarefas do seu sistema operacional, dependo do que a sua sub1 faz, etc.<br>



<br>Mas acho que a sua dúvida é um pouco mais básica do que isso...<br><br>Fazer:<br>for (my $i =1; $i <= 5; $i++){<br>[alguma coisa]<br>}<br><br>é essencialmente igual a fazer [alguma coisa] 5 vezes (tirando o fato que você pode utilizar o parâmetro do for para fazer alterações):<br>



[alguma coisa]<br>[alguma coisa]<br>[alguma coisa]<br>[alguma coisa]<br>[alguma coisa]<br><br>No seu caso, <br>for (my $i =1; $i <= 5; $i++){<br>my $thr = threads->create(\&sub1);<br>
}<br><br>É igual a fazer:<br>my $thr = threads->create(\&sub1);<br>my $thr = threads->create(\&sub1);<br>my $thr = threads->create(\&sub1);<br>my $thr = threads->create(\&sub1);<br>my $thr = threads->create(\&sub1);<br>



<br>Que é exatamente o que você queria, não? ;-)<br><br>[ ]'s<br></div></div>-- <br>Bruno C. Buss<br><a href="http://brunobuss.wordpress.com/" target="_blank">http://brunobuss.wordpress.com/</a><br><a href="http://www.dcc.ufrj.br/%7Ebrunobuss/" target="_blank">http://www.dcc.ufrj.br/~brunobuss/</a><br>




<br></div></div><div class="im">_______________________________________________
Rio-pm mailing list
<a href="mailto:Rio-pm@pm.org" target="_blank">Rio-pm@pm.org</a>
<a href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">http://mail.pm.org/mailman/listinfo/rio-pm</a></div></div>                                       </div></div>
<br>_______________________________________________<br>
Rio-pm mailing list<br>
<a href="mailto:Rio-pm@pm.org">Rio-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">http://mail.pm.org/mailman/listinfo/rio-pm</a><br></blockquote></div><br></div>