Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [c#] Server: un thread per ogni client connesso...

    Salve,
    in realtà questo post non è specifico sul c#, ma piuttosto sulla programmazione multithreading in generale...
    Sto sviluppando un'applicazione server, e l'approccio che ho scelto temo possa essere quello sbagliato. Senza entrare troppo in dettaglio, il server, quando riceve una chiamata da un client, crea una struttura dati associata al client, accetta la connessione, crea il socket, e poi crea anche un thread worker associato a quel client.
    Ora, anche se non credo che questa applicazione dovrà mai sostenere un traffico superiore ad un centinaio di client, temo che la creazione di un thread per ogni client possa portare ad un degrado delle prestazioni significativo quando i client aumentano.
    Però allo stesso tempo non mi viene in mente un altro modo per gestire i client in maniera asincrona.

    Cosa ne pensate?

    Grazie mille.

    Ciao.

  2. #2
    Utente di HTML.it L'avatar di rsdpzed
    Registrato dal
    Aug 2001
    Messaggi
    764

    Re: [c#] Server: un thread per ogni client connesso...

    Originariamente inviato da MonsterMash
    Però allo stesso tempo non mi viene in mente un altro modo per gestire i client in maniera asincrona.
    Lo penso anch'io. In ogni modo credo che ti stia ponendo un problema inutile.
    dal punto di vista dello sviluppo l'importante è che l'applicazione sia scalabile. Se i client connessi aumentano e noti un degrado che puoi risolvere "semplicemente" aumentando le cpu allora sei a cavallo.

    poi credo che quanto piu lavorerai sull'ottimizzazione tanto piu l'applicazione scalerà meglio. Per esempio se nell'ambito dello stesso utente usi ulteriormente la programmazione asincrona per lavori come accessi alla rete o al filesystem consentiresti al sistema operativo di effettuare lo slice verso un altro thread nell'ambito della stessa sessione. Aumentano i thread e a parità di potenza di cpu l'applicazione degraderebbe ulteriormente ma è un approccio piu scalabile.

    tutto imho perche personalmente non sono esperto in questo campo.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.