AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Dateiliste effektiv downloaden

Ein Thema von xZise · begonnen am 30. Mär 2008 · letzter Beitrag vom 3. Apr 2008
 
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#1

Dateiliste effektiv downloaden

  Alt 30. Mär 2008, 15:05
Hallo DP,
ich habe eine Frage:
Und zwar programmiere ich einen Nachfolger von Quick Download (Qd).

Da man bei Qd meistens mehrere Dateien hat, möchte ich diese parallel downloaden.
Entweder lastet man seine Bandbreite besser aus, oder man entlastet die Server. (Je nach Downstream von einen selbst und den Upstream des Servers)

Wie macht man das nun am besten?
Zuerst habe ich gedacht: Machst du einfach mehere Threads (vom Benutzer einstellbar), welche alle auf die Liste zugreifen (threadsafe?) und diese durchgehen und überprüfen ob die Datei gedownloadet werden kann.
  • Vorteil:
    • Effektiv, da nur einmal Threads erstellt werden, diese nie suspenden müssen
    • Eine zentrale Stelle kann die Threads verwalten
    Nachteil:
    • Nicht umbedingt Threadsafe
    • Zwei Threadkritische Punkte: Zugriff auf die Liste und der Zugriff auf den Eintrag

Eine andere Möglichkeit wäre, dass jeder Eintrag selber seinen Thread verwaltet.
D.h. er wird zum startet des Downloads aufgefordert. Und er erstellt einen Thread füttert ihn mit den Werten und lässt ihn rennen.
Es gäbe dabei zwei verschiedene Möglichkeiten: Onrequest oder Oncreate. Bei wird der Thread erstellt, wenn der Thread benötigt wird, bei zweiterem existiert der Thread immer.
Ersteres freut den Ram, zweiteres freut den CPU.
  • Vorteil:
    • Von sich aus Threadsafe, da immer nur ein Thread pro Eintrag arbeitet
    Nachteil:
    • Benötigt mehr Ram (im Oncreate)
    • Möglicherweise längere "Arbeitszeiten", da die Threads erstellt werden müssen (im Onrequest)
    • Die Verwaltung stellt ein Problem da: Die Liste muss herausbekommen, wann ein neuer Thread gestartet werden kann

Nun wie würdet ihr das lösen?

MfG
xZise

PS: Zum ersteren habe ich schon eine Frage gestellt gehabt: [TCriticalSection] Teil einer Klasse auf die zugegriffen wird
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:02 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz