AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

The Generics Stack

Ein Thema von himitsu · begonnen am 1. Nov 2009 · letzter Beitrag vom 2. Nov 2009
 
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.340 Beiträge
 
Delphi 12 Athens
 
#4

Re: The Generics Stack

  Alt 1. Nov 2009, 22:43
Joar, also ... ähhhhhhmmmmm ... ja

Im Prinzip ist es schon eine Liste, aber mit dem Unterschied einer etwas anderen Verwaltung.

Bei einem Stack/Queue greift man im Allgemeinen erstmal nur auf die Enden des Speichers.
Und er ist vorallem als Zwischenspeicher ausgelegt.

Dieser hier ist jetzt zusätzlich noch threadsicher ausgelegt, was auch noch etwas Arbeit erspart.
Abgesehn davon haben die Generics gegenüber 'ner "einfachen" TList noch ein/zwei Vorteile.

Ich weiß ja nicht, wie oft du mit TList und Co. gearbeitet hast, aber bei der Speicherverwaltung muß man schon etwas aufpassen. (gut, wenn man hier Objekte oder Pointer in den Stack packt, dann ändert sich daran nicht viel)


Man könnte sich z.B. in einem Programm 'ne Aufgabenverteilung überlegen.
Das Hauptprogramm trägt dabei nur die zu erledigenden Aufgaben in den Queue ein
und im Hintergrund warten ein oder gar mehrere Threads darauf, daß Arbeit anliegt
und wenn, dann arbeiten sie langsam die im Stack abgelegten Aufgaben ab.
Delphi-Quellcode:
Type TMyRec = Record
    Name: String;
    Blubb: Irgendwas;
  End;
  TMyStack = TGenStack<TMyRec>

Var MyQueue: TMyStack;
  MyRec: TMyRec;

// Haupprogramm
MyQueue.Push(MyRec);

// Workerthread
Repeat
  If MyQueue.Unshift(MyRec) Then Begin
    ...
  End Else Sleep(100);
Until Terminated;
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
 


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 23:48 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