Ir para conteúdo
Fórum Script Brasil
  • 0

Melhorar Código


Lucas Phillip

Pergunta

Olá,

gente, eu to com um programa aqui que precisa criar MTs e MTs threads, e eu acho que isso tem deixado o programa pesado d+. Há alguma alternativa mais "leve" para as threads? :blink:

Só pra avisar, meu programa é um servidor para um jogo. Então para cada usuário que entra, ele cria um thread para esse usuário. Como não temos dinheiro para um servidor bom, pegamos um muito vagabundo e quando entra muito gente, o servidor simplesmente não consegue executar o programa direito :(

Vlw :D

Link para o comentário
Compartilhar em outros sites

10 respostass a esta questão

Posts Recomendados

  • 0

Bom, cada thread possui seu "listen" que fica aguardando mensagens enviadas pelo usuário, e depois que recebe alguma mensagem, ele identifica ela, faz a ação correspondente à mensagem e depois da um retorno para os usuários.

Por exemplo, se alguém manda uma mensagem no chat, o "listen" recebe o comando, identifica ele como uma mensagem de chat, depois manda essa mensagem para todos os usuários.

Link para o comentário
Compartilhar em outros sites

  • 0

gray.. não posso te responder com certeza a esta pergunta não. :(..

Bom, eu utilizei como base os exemplos de conexão que tem no msnd envolvendo tcplistener e tcpclient. A partir desses exemplos eu construi o servidor.

Agora, não tenho muito base pra responder a sua pergunta, pois a definição que tenho na minha cabeça de sincrona e assincrona é muito simples para conseguir definir qual o servidor é.

Como eu posso ter certeza?

Vlw

Link para o comentário
Compartilhar em outros sites

  • 0

É simples, dando um exemplo beeem resumido: Se as ações são executadas TODAS AO MESMO TEMPO, é porque são sincronas, se elas não tem um tempo pré-deerminado para serem enviadas ou não, são assincronas.

Tipo, se você tem uma taxa de transferência determinada entre as instruções e elas tambem ocorrem ao mesmo tempo, a danada é SINCRONA. Agora, se existem diversas taxas de transferências e elas podem ocorrer em qualquer momento, são ASSINCRONAS.

É essa a definição que você tinha na cabeça?

Deu pra dar uma força?

Link para o comentário
Compartilhar em outros sites

  • 0
gray.. não posso te responder com certeza a esta pergunta não. :(..

Bom, eu utilizei como base os exemplos de conexão que tem no msnd envolvendo tcplistener e tcpclient. A partir desses exemplos eu construi o servidor.

Agora, não tenho muito base pra responder a sua pergunta, pois a definição que tenho na minha cabeça de sincrona e assincrona é muito simples para conseguir definir qual o servidor é.

Como eu posso ter certeza?

Você usa métodos que começam com "Begin" e "End"? (Como o BeginAcceptSocket(), por exemplo).

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0
Utilizo não.. a conexão é feita através do AcceptSocket() do tcplistener.

Então você está fazendo tudo sincronamente. *Acredito* que o funcionamento do seu programa deve ficar mais leve se você fizer as coisas assincronamente. Mas, também vai exigir que você mude várias coisas aí. Sugiro a você dar uma pesquisada sobre como funcionam estes métodos assíncronos (que começam com "Begin" e "End").

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...