Sur le multithreading télécharger inconvénients
J'ai une question sur le multithreading télécharger, comme vous le savez téléchargement en utilisant plusieurs threads d'améliorer les performances de l'application, cependant, il ya quelques mesures à respecter: comme le nombre de threads, la bande passante disponible et quelques autres, mais je ne comprends pas vraiment pourquoi l'exécution de la demande risque d'être dégradée par l'utilisation de plusieurs threads par exemple, ou comment la bande passante,la qualité de serveur affecter les performances de l'application multithread? , quels sont les cas dans lesquels monothread de téléchargement est plus rapide que multithread?
Merci pour vos réponses.
OriginalL'auteur Safa | 2014-06-06
Vous devez vous connecter pour publier un commentaire.
Je suppose que vous faites référence à des gestionnaires de téléchargement.
D'abord, je suis sceptique quant à la façon dont beaucoup de "performance" des avantages d'un gestionnaire de téléchargement fournit vraiment. Mais plus important encore, toutes les prestations qu'ils fournissent est pas en raison de multi-threading. La performance de la contrainte de téléchargement est le de la bande passante de la connexion. Et c'est pourquoi je suis sceptique à l'égard des avantages:
L'avantage réel d'un gestionnaire de téléchargement est en redémarrant automatiquement les téléchargements de façon efficace (c'est à dire de ne pas re-commencer à partir de zéro si possible).
Alors quel est le point de multi-threading?
Nous allons tout d'abord dissiper un mythe: le Multi-threading ne pas vitesse que quoi que ce soit. Si une routine nécessite X horloge-cycles pour exécuter: il faut X de l'horloge-cycles; que ce soit sur 1 fil ou plusieurs fils.
Le multi-threading n'est à faire: il permet l'exécution de tâches simultanément (en même temps).
La capacité de faire des choses différentes en même temps signifie:
Quand est-single-threaded plus rapide que le multi-thread?
Eh bien, à peu près toujours dans les cas où le CPU n'est pas le goulot d'étranglement. Dans le cas du téléchargement: Comme mentionné précédemment, le goulot d'étranglement est la bande passante entre les deux points d'extrémité de la connexion. Nombre de threads qui signifie que vous avez à faire plus de travail (gestion et de la coordination des différents threads).
L'approche la plus efficace pour le téléchargement est 2 fils: l'un pour l'INTERFACE utilisateur et l'autre pour le télécharger pour que tout s'arrête/dealys ne pas bloquer l'interface utilisateur.
Cependant, plus généralement, même si vous avez de l'UC travail intensif qui pourrait théoriquement bénéficier de plusieurs threads en train de faire différentes tâches simultanément, il est très facile de faire des erreurs dans la mise en œuvre que de ralentir votre application.
Cette réponse est très mauvais dans le cœur de la revendication. Téléchargements plus souvent ne sont pas pas limitée par la downloader est la connexion. Les vitesses de connexion de plus de 10megabit ont été commun pour une décennie ou plus. Pourtant, la plupart des téléchargements sont limités à ~2 mégabits sur le côté SERVEUR. Cela se fait par le fichier hosts afin d'économiser de la bande passante. Gestionnaires de téléchargement peut exploiter cette par le multi-threading, le téléchargement et le téléchargement des différentes parties d'un même fichier simultanément à partir d'un ou plusieurs ordinateurs hôtes et ensuite les combiner à la fin. Cinq de 2 mbits télécharger des torrents vous donne 10 mbits total DL taux.
oui, c'est l'exacte représentation de ce qui est mal avec le monde. Si quelqu'un capable de gagner une discussion sur un point au point devient la vérité. Peu importe si c'est la vérité réelle. Il est complètement faux, pour de nombreuses raisons.. Mais sa a accepté de répondre et guy a 12k points..
OriginalL'auteur Disillusioned