<div class="gmail_quote">2012/3/11 Aureliano Guedes <span dir="ltr"><<a href="mailto:guedes_1000@hotmail.com">guedes_1000@hotmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;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 class="im"><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="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/">http://brunobuss.wordpress.com/</a><br><a href="http://www.dcc.ufrj.br/~brunobuss/">http://www.dcc.ufrj.br/~brunobuss/</a><br>