Multiple Threads



  • Hallo Forum,
    hab ein 'kleines' problem mit threads, ähm, und zwar ich weis nicht wie die erstellt werden, und wie sie funktionieren, wo soll ich am besten anfangen um das nötige zu erlernen, ich muß multiple threads verwenden in meinem programm, genaue aufgabe ist, ich habe href-links(auch mehrere hundert können es sein) die ich prüfen muß, sind alle in einem CListCtrl aufgelistet, die alle sequenziell zu prüfen, z.b. aus einem array , dauert ewig, ich dachte dass das mit threads viel schneller gehen könnte!!!
    Wo gibts gute docu, oder anleitung mit beispielen, oder hier im forum vieleicht dass jemand lust hat zu helfen für das thema!?

    Muß das mit CWinThread() irgendwie gemacht werden???

    grüsse
    mirsad



  • Die Verwendung von Threads erhöht NICHT die Performance eines Programmes.
    Vielleicht solltest du dich mal damit beschäftigen was Threads oder Processe
    sind, und wo/wann man sie man vernünftigerweise einsetzt. 🙄
    Diese Überlegung sind durchaus sinnvoll, weil multithreaded Anwendungen sowohl
    schwerer zu schreiben als auch zu testen sind als "normale" Anwendungen. 😉



  • Überlege dir gut, ob Mehrere Threads dir wirklich etwas
    bringen, wenn die Links auf dem Selben Server liegen,
    kann es auch vorkommen, das du zuviel abfragen durch die
    Threads offen hast, und dir die Kiste dann Probleme macht.



  • Hallo,
    danke für eure tipps,jedenfalls dachte ich dass threads immer ein programm schneller machen, das war halt mein erster gedanke um das programm schneller zu machen wenn so eine aufgabe zu erledigen ist, aber jetzt erst mal input 🙂 😕

    danke
    mirsad



  • Solange es nur eine CPU gibt biringt es dir gar nichts. Das lauft dann in etwas so ab:
    - Prozess 1 - Thread 1 läuft 1ms - dann pause
    - Prozess 1 - Thread 2 läuft 1ms - dann pause
    - Dein Prozess - Thread 1 läuft 1ms - dann pause
    - Dein Prozess - Thread 2 läuft 1ms - dann pause
    - zurück zu Prozess 1 - Thread 1
    Es hat nur den anschein als würden die threads parallel abgearbeitet, was aber physikalisch nicht möglich ist, da nur eine CPU da, die immer einen befehl nach dem anderen ausführt.

    Sobald jetzt systeme mit hyper threading oder multi prozessor systeme ins spiel kommen kannst du mit threads die performance steigern, da dieses jetzt auch wirklich parallel abgearbeitet werden können.

    So als faustregel gillt: optimal sind gleich viele threads wie CPUs auf dem system sind.


Anmelden zum Antworten