Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Programm funktioniert nicht mehr richtig?
Gehe zu Seite Zurück  1, 2
 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4597
Wohnort: ~/

BeitragVerfasst am: 03.12.2015, 17:39    Titel: Antworten mit Zitat

Zitat:
Da ich den Quellcode etwas umständlich geschrieben habe, müsste ich demnach auch Laufvariablen mit einem Mutex versehen?

Wenn deine Laufvariablen von mehreren Threads geteilt werden, dann würde ich mir ganz dringend Gedanken über eine sinnvollere Strukturierung machen. Geschützt werden müssen alle Variablen und anderweitigen Zugriffe, die von mehreren Threads geteilt werden - alle Variablen, die ausschließlich von einem einzigen Thread verwendet werden, müssen nicht geschützt werden (bzw. es macht auch keinen Sinn, sie zu schützen).

Code:
Vorallem, wenn ich auch noch ein Unterprgramm aufrufe!

In aller Regel würde ich sicherstellen, dass ich den Mutex wieder entsperre, bevor ich ein Unterprogramm aufrufe. Wenn das Unterprogramm selbst auf geteilte Variablen zugreifen muss, kann es dann selbst eine Sperrung vornehmen.

Vielleicht mal als Faustregel: Der Spruch "doppelt gesperrt hält besser" darf bei einem Mutex nicht beherzigt werden - doppelt gesperrt ist nämlich identisch mit einem Deadlock.

Ich habe übrigens auch früher schon einmal auf das Mutex-Kapitel in meinem Buch hingewiesen; da sind ein paar Fallen aufgelistet.
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ALWIM



Anmeldungsdatum: 08.08.2006
Beiträge: 1037
Wohnort: Niederbayern

BeitragVerfasst am: 03.12.2015, 18:55    Titel: Antworten mit Zitat

nemored hat Folgendes geschrieben:
Da ich den Quellcode etwas umständlich geschrieben habe, müsste ich demnach auch Laufvariablen mit einem Mutex versehen?

Wenn deine Laufvariablen von mehreren Threads geteilt werden, dann würde ich mir ganz dringend Gedanken über eine sinnvollere Strukturierung machen. Geschützt werden müssen alle Variablen und anderweitigen Zugriffe, die von mehreren Threads geteilt werden - alle Variablen, die ausschließlich von einem einzigen Thread verwendet werden, müssen nicht geschützt werden (bzw. es macht auch keinen Sinn, sie zu schützen).
Dann ist es also besser 2 Verschiedene Variablen (i + k) bzw. 2 identische Unterprogramme zu verwenden. Ok, hmm? Schön langsam komme ich dem Ziel näher! Ich bedanke mich recht herzlich für die Antwort! Das hilft mir enorm weiter.

Gruß
ALWIM
_________________
SHELL SHUTDOWN -s -t 05
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite Zurück  1, 2
Seite 2 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz