AGB  ·  Datenschutz  ·  Impressum  







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

Frage zu Treads

Ein Thema von silentAMD · begonnen am 30. Dez 2003 · letzter Beitrag vom 25. Aug 2004
Antwort Antwort
Seite 3 von 3     123   
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#21

Re: Frage zu Treads

  Alt 2. Jan 2004, 22:37
Zitat von Luckie:
Zitat:
Zitat:
BeginThread setzt die globale Variable IsMultiThread auf True und macht so Zugriffe auf den Heap so threadsafe
Aja!?!
Tut sie. Wo ist das Problem?
Ich denke, das Problem liegt darin, dass SleepyMaster wohl nicht weiß, was das bedeutet, also was genau im Heap liegt und was threadsicher bedeutet. Ich im übrigen auch nicht...
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#22

Re: Frage zu Treads

  Alt 2. Jan 2004, 23:26
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.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#23

Re: Frage zu Treads

  Alt 3. Jan 2004, 10:07
Welche Daten sind denn im Heap abgelegt?
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#24

Re: Frage zu Treads

  Alt 3. Jan 2004, 11:22
Globale Variablen zum Beispiel.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#25

Re: Frage zu Treads

  Alt 3. Jan 2004, 11:32
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*
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#26

Re: Frage zu Treads

  Alt 3. Jan 2004, 17:57
Zitat von Meflin:
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?
Eien AV wird es nicht geben, nur wenn der erste ein Item lköscht, liest der zweite eventuell ein falsches aus, weil andere anderen nachrücken.
Zitat:
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?
Nur die die in die gleiche CS rein wollen logischerweise. Aber tu dir doch mal mein Tutorila dazu an, ist etwas ausführlicher als das von Martin Strohal.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#27

Re: Frage zu Treads

  Alt 3. Jan 2004, 18:25
thx
  Mit Zitat antworten Zitat
Dark Templar

Registriert seit: 11. Jul 2004
20 Beiträge
 
#28

Re: Frage zu Treads

  Alt 25. Aug 2004, 15:12
Kann man CS's eigentlich auch vom Hauptprogramm auch in Anspruch nehmen lassen?
It's not a bug - it's a feature!

Check out www.darktemplar.npx.de
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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