![]() |
Re: Frage zu Treads
Zitat:
|
Re: Frage zu Treads
Der Heap ist ein Speicherbereich im Adressraum des Prozesses, wie der Stack auch, nur dass er etwas anders organisiert ist. Wenn ich jetzt eine multithread Anwendung habe und ein Thread schreibt etwas in den Heap und ein anderer Thread liest gerade zufälligerweise an der gleichen Adresse, kann es passieren, dass der lesende Thread die Daten in einem inkonsistenten Zustand vor findet. Threadsafe bedeutet hier, dass jegliche Zugriffe auf den Heap atomare Operationen sind. Das heißt, wenn ein Thread auf den Heap zugreift, ist er für andere gesperrt. Deswe3gen sollte man sehr vorsichtig sein, wenn man Threads nicht einfach enden läßt sondern sie abschießt. Schießt man einen Thread ab während er auf den Heap zugreift, kann es passieren, dass Heap für die anderen Threads gesperrt bleibt und sie so bis in alle Ewigkeit darauf warten auf ihn zugreifen zu dürfen. Deswegen ist er sehr wichtig, dass man Threads versteht und weiß, was man macht, wenn man sie anwendet. Mit Threads kann man Probleme sehr elegant lösen, macht man aber was falsch oder arbeitet nicht sorgfälltig kann man mit ihnen mehr Probleme bekomen, als man löst. Ein einfaches Application.Processmessage in einer Schleife wäre dann angebrachter für einen Anfänger.
|
Re: Frage zu Treads
Welche Daten sind denn im Heap abgelegt?
|
Re: Frage zu Treads
Globale Variablen zum Beispiel.
|
Re: Frage zu Treads
häng ich meine frage einfach mal hier mit dran:
würde es eine zugriffsverletzung erzeugen, wenn ich aus zwei threads gleichzeitig auf eine listbox, aber auf unterschiedliche items zugreife? und: werden, wennn sich ein thread in einer critical section befindet, alle threads blockiert (wies in martin strohals tut steht) oder nur die, die in die critical section wollen? *MFG* |
Re: Frage zu Treads
Zitat:
Zitat:
|
Re: Frage zu Treads
thx
|
Re: Frage zu Treads
Kann man CS's eigentlich auch vom Hauptprogramm auch in Anspruch nehmen lassen?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19: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