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

Responder a