Threads



  • Hallo,

    ich hab 2 arrays und diese sollen sortiert werden. Jetzt könnte ich 2 Threads kreieren und jeder Thread sortiert jeweils ein array. Hat meine CPU 2 Cores bin ich mit Sicherheit doppelt so schnell.

    Aber machen Threads auf einer CPU mit nur 1 Core überhaupt Sinn?



  • Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C (C89 und C99) in das Forum Rund um die Programmierung verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Threads erzeugen mit der Hoffnung auf Performancesteigerung macht logischerweise erst bei mehr als einem Kern (ob physikalisch oder logisch, Stichwort Hyperthreading (1 phys, 2 log)) Sinn.

    Eine reine Verdopplung der Geschwindigkeit muss aber auch bei zwei physikalischen Kernen nicht unbedingt auftreten. Z.B. könnten sich die Threads wertvolle Resourcen (Cache!) gegenseitig wegnehmen.



  • Tim schrieb:

    Threads erzeugen mit der Hoffnung auf Performancesteigerung macht logischerweise erst bei mehr als einem Kern (ob physikalisch oder logisch, Stichwort Hyperthreading (1 phys, 2 log)) Sinn.

    Ist die Aussage so pauschal denn richtig? In dem genannten Beispiel mit den Arrays ok, aber was ist in Anwendungsfällen, wo ein Thread beispielsweise auf die Festplatte zugreifen muss? Da sehe ich definitiv mögliche Performancesteigerungen.



  • KuhTee schrieb:

    Tim schrieb:

    Threads erzeugen mit der Hoffnung auf Performancesteigerung macht logischerweise erst bei mehr als einem Kern (ob physikalisch oder logisch, Stichwort Hyperthreading (1 phys, 2 log)) Sinn.

    Ist die Aussage so pauschal denn richtig? In dem genannten Beispiel mit den Arrays ok, aber was ist in Anwendungsfällen, wo ein Thread beispielsweise auf die Festplatte zugreifen muss? Da sehe ich definitiv mögliche Performancesteigerungen.

    Und Recht hast du.
    Klar können viele Threads auf Maschinen mit nur einem Hardware-Thread was bringen. Aber eben nur wenn diese zwangsweise wegen IO oder dergleichen heitschi geschickt werden.
    Was man dann oft (aber nicht immer) auch anders lösen könnte - z.B. über asynchronen IO etc.


Anmelden zum Antworten