Ir para o conteúdo

 Voltar a Linguagem Lua
Tela cheia

Exemplo "Viva Mais - Peso Ideal" do clube.ncl.org.br

6 de Novembro de 2008, 8:35 , por Desconhecido - | Ninguém seguindo este artigo por enquanto.
Visualizado 14 vezes

Pessoal,

Estava analisando o código do exemplo "Viva Mais - Peso Ideal" e estou tentando entender porque uma thread foi criada para esperar a entrada de texto. Realmente uma thread se faz necessária?

Agradeço quem puder me exclarecer esta questão.

Autor: Luis Antonio Tavares


44 comentários

  • B84c5aed621335947af2d6faa786d885?only path=false&size=50&d=404Francisco Sant'Anna(usuário não autenticado)
    6 de Novembro de 2008, 12:23

     

    Olá,

    Não são threads, mas sim co-rotinas.

    Co-rotinas são como funções normais, com a diferença que podem ser suspensas no meio de sua execução e resumidas no ponto exato onde pararam.

    Sim, esse exemplo poderia ter sido feito sem o uso delas.

    A vantagem de utililizá-las é que, quando suspensas, as co-rotinas guardam todo o estado corrente (variáveis locais, fluxo, etc).

    São muito úteis para se utilizar em conjunto com programação orientada a eventos, eliminando aquela salada de callbacks, muito comum nesse tipo de programação.

    --

    Francisco

    • B84c5aed621335947af2d6faa786d885?only path=false&size=50&d=404Francisco Sant'Anna(usuário não autenticado)
      6 de Novembro de 2008, 12:26

       

      Apenas para complementar.

      Co-rotinas não tem aquela idéia de escalonamento preemptivo de threads. O programador deve controlar isso.

      Também são extremamente leves, sendo comum encontrá-las em centenas dentro de aplicações.

      Seu uso é muito comum em jogos, daí Lua ser tão usado em jogos.

      O exemplo LuaRocks também utiliza co-rotinas para todas as animações.

      --

      Francisco

      • 5d44771aca8671527c308ac9c1352dd2?only path=false&size=50&d=404Luis Antonio Tavares(usuário não autenticado)
        6 de Novembro de 2008, 13:31

         

        Pelo que entendi então, o ideal seria utilizar co-rotinas em todas minhas entradas de texto, pois deixaria a aplicação mais leve para a execução. Mas e se eu não utilizar, essa diferença de desenpenho é muito grande?

        Lua então não possui thread mas sim coroutine, que apesar de não uma thread possiu algumas características similares, é isso?

        Obrigado pelos esclarecimentos Francisco.

         

        • B84c5aed621335947af2d6faa786d885?only path=false&size=50&d=404Francisco Sant'Anna(usuário não autenticado)
          6 de Novembro de 2008, 14:01

           

          Não existe diferença de desempenho, a diferença está na facilidade de programação.

          Você pode ver co-rotinas dessa forma, mas são conceitos bem diferentes.

          O ideal é você tentar usá-las para sentir essa diferença.

Concurso ITU-T de Aplicações para IPTV 2012

13 de Agosto de 2012, 19:38, por Desconhecido

Gostaríamos de lembrar aos possíveis interessados que o prazo de registro para participação no Concurso ITU-T de Aplicações para IPTV 2012 (IPTV Application Challenge) se encerra nesta semana, dia 15 de agosto de 2012. Já o prazo para a submissão de aplicações se encerra no dia 07 de setembro de 2012.



NCL Eclipse 1.6 disponível

10 de Janeiro de 2012, 21:19, por Desconhecido

Caros membros da Comunidade Ginga,



Concursos de Aplicações Ginga-NCL

22 de Setembro de 2011, 3:22, por Desconhecido

    Gostaríamos de relembra-los de que há dois concursos de aplicações Ginga-NCL com inscrições ainda abertas. O convite é aberto a toda a comunidade de desenvolvedores de aplicações para o Middleware Ginga-NCL, em nível internacional. São os seguintes concursos:



Novas versões: Ginga e Ginga-NCL Virtual Set-top Box (v.0.12.3)

1 de Agosto de 2011, 20:58, por Desconhecido



Algumas Boas Notícias da Comunidade Ginga

28 de Julho de 2011, 21:31, por Desconhecido

Autor: Roberto Azevedo