>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
