Registriert seit: 2. Mär 2004
5.508 Beiträge
Delphi 5 Professional
|
Re: Threads: Lesen einer globalen Ressource ist erlaubt?
5. Dez 2005, 19:35
Du brauchst die Resource X nicht zu schützen, wenn:
1.) die Resource X vom Hauptthread erzeugt wird
2.) dann deine Arbeitsthreads gestartet werde
3.) die Arbeitsthreads die Resource nur lesen
4.) der Hauptthread beim Programmende sicherstellt, dass alle Arbeitsthreads vorher beendet wurden
Geschützt werden muss nur dann, wenn ein Thread lesend auf eine Resource zugreift, während ein anderer Thread (kann auch der Hauptthread sein), die Resource schliesst oder schreibt.
Das Lesen aus einer Resource darf den internen Zustand der Resource natürlich nicht verändern.
Beispiel
Ein Dateihandle hat als internen Zustand die Dateiposition (kann mit Seek gesetzt werden).
Das Lesen aus einer Datei ändert die Position -> also muss der Zugriff auf diese Resource geregelt werden.
Andreas
|