Einzelnen Beitrag anzeigen

AJ_Oldendorf

Registriert seit: 12. Jun 2009
486 Beiträge
 
Delphi 12 Athens
 
#65

AW: Thread.Queue, Zeitmessung, Thread hängt angeblich

  Alt 23. Mai 2025, 10:44
Zitat:
Ist das noch selber, wenn man seit 4 Tagen im Forum darüber analysiert? Mit einem Profiler hättest du die Stelle vermutlich schon Dienstag Abend gefunden.
Ein Profiler wird dir genau zeigen können, was in dem besagten Zeitraum im Code passiert und wo er gerade steht - das kann dir keiner hier sagen, solang es aus verständlichen Gründen nur Codeschnipsel gibt.
Nexus_Quality_Suite installiert aber leider nicht wirklich zum Laufen bekommen mit meiner Anwendung und einer Überwachung.
Wieder deinstalliert.
Eurekalog installiert, im Projekt hinzugefügt, Hang Detection angeklickt und auf 1s gestellt. Anwendung gestartet, Fehlverhalten erzeugt (OnIdle Event wurde auch entsprechend 5s nicht aufgerufen und VCL hängt), Was müsste jetzt passieren? Eurekalog zeigt kein Fenster (hätte ich evtl. erwartet). Ich fahre die Anwendung runter. Auch keine LogDatei mit irgendwelchen Infos zu dem Hänger gefunden. Gibts noch ein Trick?

Genau aus dem Grund, wollte ich es selber finden, da auch die Profiler keine Wunderlösung sind und entsprechend konfiguriert oder ähnliches gemacht werden muss.
Ich sage nicht, dass die nicht funktionieren. Ich sage nur, es ist kein installieren und Fehler wurde gefunden im Programm.

Hier vielleicht jemand ein Tipp dazu?

Zitat:
Thread sicher ist ja einfach mittels Synchronisationsobjekten herstellbar...das Problem ist das man inder Regel dabei die Nebenläufigkeit, vorrübergehend reduziert oder ganz aushebelt oder einen Deadlock erzeugt.

Es gibt allerdings lockfreie Queues mit denen das geht! Mann kann die als "Channel" benutzen. Die sind dann zwar Lockfrei jedoch erzeugen die für sich ne menge Aufwand...jedoch diesen aben vollständig ohne die Nebenläufigkeit zu behindern.
Die OmniThreadLibrary bietet sowas. Aber ich habe die nie benutzt...und ich habe den code nicht gut genug verstanden um die Lockfree-Collections auszubauen und zu verweden.

Falls es die architektonish darum geht einige lang laufende Threads zu haben und diese immer weieder mal mit einer Aufgabe zu versorgen. Dieses problem verspricht die Darkthreading-Library zu lösen....die hat keinen Lockfreien Ansatz sondern nennt es "Light-locking".


Ich warte noch auf eine mit "Fearless-Concurency" werbende Multithreading library. Die werde ich dann direkt übernehmen
Ich gucke mir das mal an aber ich habe die Beiträge mit den vielen Denkanstößen so verstanden, dass es generell threadsichere Queues/Listen gibt, die man nutzen kann um mit Threads zu arbeiten? Gleichzeitig wird immer auf Events verwiesen um die Threads anzutriggern.
Aber irgendwie scheint es keine Beispiele dazu zu geben, wo man sich das konkret angucken und nutzen könnte. Zum aktuellen Zeitpunkt helfen die Denkanstöße leider nicht wirklich
  Mit Zitat antworten Zitat