AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke TThreadedQueue vs ThreadedRingBuffer
Thema durchsuchen
Ansicht
Themen-Optionen

TThreadedQueue vs ThreadedRingBuffer

Ein Thema von QuickAndDirty · begonnen am 3. Feb 2025 · letzter Beitrag vom 4. Feb 2025
Antwort Antwort
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.045 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#1

AW: TThreadedQueue vs ThreadedRingBuffer

  Alt 4. Feb 2025, 12:52
Warum wird jedesmal alles gelockt?
Weil die RTL Entwickler wenig bis keine Erfahrung haben, lockfreie Datenstrukturen zu designen und zu implementieren.
Und das meine ich ausnahmsweise mal nicht despektierlich, das ist nämlich wirklich kein Zuckerschlecken sonst hätt ich sowas auch in Spring4D, aber davon lass ich lieber die Finger
Wenn du sowas benötigst, solltest du dich eher bei externen Bibliotheken umschauen, z.B. der OTL.

Übrigens, lockfrei ist auch nicht wirklich der heilige Gral, da gibt es noch weit mehr zu berücksichtigen.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight

Geändert von Stevie ( 4. Feb 2025 um 12:55 Uhr)
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
2.003 Beiträge
 
Delphi 12 Athens
 
#2

AW: TThreadedQueue vs ThreadedRingBuffer

  Alt 4. Feb 2025, 16:21
Ich habe drüber nachgedacht...
um es semi-Lockfrei zu halten müsste ich dafür sorgen das im Ringpuffer immer mindestesens zwei Einträge sind...also auch im leeren Ringpuffer müssten 2 dummy einträge sein...
Und dann könnte ich lesen und schreiben unabhängig von einander Locken... nur so zur sicherheit...aber das wäre effektiv so dass kein thread je auf das unlock warten müsste (Waitfree)...es sei denn es läuft etwas schief.
Andreas
Monads? Wtf are Monads?

Geändert von QuickAndDirty ( 4. Feb 2025 um 16:24 Uhr)
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
2.003 Beiträge
 
Delphi 12 Athens
 
#3

AW: TThreadedQueue vs ThreadedRingBuffer

  Alt 4. Feb 2025, 17:21
Wenn du sowas benötigst, solltest du dich eher bei externen Bibliotheken umschauen, z.B. der OTL.
Oh je.
Ist es das hier?

https://github.com/gabr42/OmniThread...kFreeQueue.pas

Verstehst du das?

Edit:
OK es gibt hier eine Erklärung
https://www.thedelphigeek.com/2010/0...-it-right.html
Andreas
Monads? Wtf are Monads?

Geändert von QuickAndDirty ( 4. Feb 2025 um 17:30 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


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 20:10 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz