>o programa vai esperar a thread terminar a execução para poder finalizar.

Paulo, como pode ser visto no gist que eu colei emails atrás, o
negócio é ao contrário, o programa interrompe a execução da thread, a
thread só vai manter o programa rodando caso você chame o método join
explicitamente, e no código que o Wesley postou, não tem join

O Wesley não disse exatamente qual o comportamento ele queria, mas
caso ele queira mesmo abrir um outro processo dentro do programa dele,
forks podem ser uma boa mesmo

2010/5/10 Paulo Geyer <[email protected]>:
> Threads são processos paralelos durante a execução de um programa, o
> programa vai esperar a thread terminar a execução para poder finalizar. Para
> criar um processo independente do programa que você está executando, é
> necessário criar um fork, assim o programa pode ser finalizado e o processo
> continuar sendo executado como um outro programa.
> Por exemplo, eu quero um programa que faça buscas no Yahoo e Google
> simultaneamente, uso threads, mas as duas threads estarão sujeitas ao mesmo
> processo.
> Se eu quiser executar algo que vai demorar, e não ficar ocupando o console,
> posso usar um fork que vai permitir o programa terminar e liberar o
> terminal, e o processo em fork continua a ser executado.
> Você tem algum objetivo em mente, ou está apenas estudando?
> Paulo Geyer
> Desenvolvedor PHP/Ruby
> Celular: +55 48 8438-4420
> Skype: paulogeyer
>
>
> On May 10, 2010, at 5:25 PM, Wesley Oliveira wrote:
>
> Estranho pessoa,
>
> Acho que são meus conceitos que estão errados, acredito que estou querendo
> algo que conceitualmente o Ruby está certo e eu errado, acredito que o que
> eu quero é semelhante a um fork, mas que funcione como Thread.
>
> Vou estudar mais posto aqui minha conclusão.
>
> Mas Rafael é isso mesmo que ocorreu aqui.
>
> ruby 1.8.7 (2009-04-08 patchlevel 160) [x86_64-linux]
>
> T++
>
> Em 10 de maio de 2010 16:49, Alexandre Riveira <[email protected]>
> escreveu:
>>
>> Olá pessoal... tentem assim
>>
>> threads = Array.new
>> threads <<
>> Thread.new do
>>  puts "inicio"
>>  Kernel.sleep(5)
>>  puts "fim"
>> end
>>
>> puts "fim do script aguardando a thread terminar"
>> threads.each{|t| t.join}
>>
>>
>> Rafael Souza escreveu:
>>>
>>> aqui rodou assim: http://gist.github.com/396405
>>>
>>> dá uma olhada no código e nas últimas linhas, o último Time.now está lá
>>>
>>> não sei se tem alguma diferença nisso em relação a versão, a que eu
>>> estou usando aqui é a 1.8.7
>>>
>>> $ ruby -v
>>> ruby 1.8.7 (2009-06-12 patchlevel 174) [i686-darwin9.8.0]
>>>
>>>
>>> 2010/5/10 Wesley Oliveira <[email protected]>:
>>>
>>>>
>>>> Não Rafael pior que não estou.
>>>>
>>>> Ficou assim:
>>>>
>>>> Thread.new do
>>>>   while(true)
>>>>      puts Time.now
>>>>    end
>>>>  end
>>>> puts Time.now
>>>>
>>>>
>>>> O que ocorre e que Ele não executa o último Time.now fora do bloco do
>>>> Thread
>>>>
>>>> Em 10 de maio de 2010 12:17, Paulo Geyer <[email protected]>
>>>> escreveu:
>>>>
>>>>>
>>>>> Aí é um fork.
>>>>>
>>>>> puts "Início do programa!"
>>>>> fork {
>>>>>  puts "Início do fork"
>>>>>  sleep 5
>>>>>  puts "Fim do fork"
>>>>> }
>>>>> puts "Fim do programa"
>>>>>
>>>>> On May 10, 2010, at 11:38 AM, Wesley Oliveira wrote:
>>>>>
>>>>>
>>>>>>
>>>>>> Ola Pessoa,
>>>>>>
>>>>>> Estou com uma duvida, nao consigo criar um thread e a mesma liberar a
>>>>>> linha de execuçao principal, o programa fica esperando ela acabar para
>>>>>> continuar a execuçao.
>>>>>>
>>>>>> Alguem tem uma ideia do problema e uma possivel soluçao?
>>>>>>
>>>>>> Obrigado.
>>>>>>
>>>>>> --
>>>>>> Nenhum de nós é tão bom quanto TODOS NÓS JUNTOS!
>>>>>> _______________________________________________
>>>>>> Ruby-l mailing list
>>>>>> [email protected]
>>>>>> https://www.listas.unicamp.br/mailman/listinfo/ruby-l
>>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Ruby-l mailing list
>>>>> [email protected]
>>>>> https://www.listas.unicamp.br/mailman/listinfo/ruby-l
>>>>>
>>>>
>>>> --
>>>> Nenhum de nós é tão bom quanto TODOS NÓS JUNTOS!
>>>>
>>>> _______________________________________________
>>>> Ruby-l mailing list
>>>> [email protected]
>>>> https://www.listas.unicamp.br/mailman/listinfo/ruby-l
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>>
>>
>> _______________________________________________
>> Ruby-l mailing list
>> [email protected]
>> https://www.listas.unicamp.br/mailman/listinfo/ruby-l
>
>
>
> --
> Nenhum de nós é tão bom quanto TODOS NÓS JUNTOS!
> _______________________________________________
> Ruby-l mailing list
> [email protected]
> https://www.listas.unicamp.br/mailman/listinfo/ruby-l
>
>
> _______________________________________________
> Ruby-l mailing list
> [email protected]
> https://www.listas.unicamp.br/mailman/listinfo/ruby-l
>
>



-- 
Rafael Souza | Web Developer
http://rafaelss.com/
rafael.ssouza Θ gmail . com
_______________________________________________
Ruby-l mailing list
[email protected]
https://www.listas.unicamp.br/mailman/listinfo/ruby-l

Responder a