Einzelnen Beitrag anzeigen

alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#9

Re: Deadlock beim stoppen eines Arbeiter Threads

  Alt 12. Mär 2007, 10:11
Mit 'offiziell' meine ich die Verwendung von Events und/oder Semaphoren sowie die zugehörigen Synchronisationsaufrufe 'ReleaseSemaphore','Set/ResetEvent', 'WaitForSingleObject' etc.

Das Einzige, was Du vlt. ändern müsstest, ist diese Logik 'Bitte mal kurz stoppen', denn so ein Thread soll ja eigentlich warten (und dabei keine/kaum CPU-Zeit verbraten) bis etwas zu tun ist. Hier wäre es eben notwendig, diese Metapher in 'Hier haste was zu tun' zu ändern.

Wobei ich gerade denke, mit einem Event die gleiche Logik ('Stopp mal kurz') hinzubekommen.

Zum Thema 'threadsicheren Zugriff' gibt es viele Ansätze. Wie viele Threads wollen gleichzeitig lesen (dürfen)? Ist es mehr als einer, dann verwende den TMultipleReadExclusiveWrite-Dingsda aus der SyncObjs-Unit.

Greift ein Thread vielleicht doch mehrfach auf die Resourcen zu ('Timer'?) Dann reicht eine TCriticalSection nicht.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat