Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
Delphi 12 Athens
|
AW: Event - Latenz
18. Apr 2024, 18:58
Und dann kommt es auch drauf an, ob der andere Thread zufällig grade aktiv ist, bzw. kurz danach wird, oder ob er grade aktiv war und nun 'ne Weile weg ist.
Sleep und WaitFor sind aber nett und geben sofort die Ausführung an Windows zurück ... verbrauchen also nicht den komplett ihnen zustehende Slott, wodurch die anderen Threads somit schneller wieder dran kommen.
Da die meisten Threads meistens schlafen, muß somit kein Thread wirklich sehr lange warten, bis er wieder dran ist.
Soll ein Thread eine gewisse "schnelle" Aufgabe in einem Slott durchführen, dann könnte man kurz vorher ein Sleep(0) einfügen und danach arbeitet der Code von beginn des neuen Slotts, aber garantiert ist es "normal" dennoch nicht, dass es wirklich durcharbeitet, außer man fummelt noch bissl an der Priorität ud Co. rum, aber auch da ist nichts garantiert.
z.B. könnte man alle anderen Threads/Prozesse auf die anderen Kerne beschränken und den einen Thread alleinig an einen bestimmteh Kern binden ... grundsärzlich würde er dann durchlaufen (aber durch Treiber, Interrupts usw. könnte er dennoch unterbrochen werden).
Außerdem hat es die CPU/Windows nicht gern, wenn EIN Core brennt (durchackert), drum schubst z.B. Windows 11 vor allem die arbeitenden Threads alle 30 Sekunden zwischen den Cores hin und her, um die Wärmebelastung zu verteilen.
$2B or not $2B
Geändert von himitsu (18. Apr 2024 um 19:04 Uhr)
|