tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
1
ZUGRIFFE
665
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Speedfreak23 Speedfreak23 ist offline Grünschnabel
    Registriert seit
    Apr 2005
    Beiträge
    2
    Hallo

    ich habe mal eine wichtige Frage. Wer kann mir denn mal sagen wie ich im Borland C++ Builder 5 einen Kritischen Abschnitt erstellen kann. Habe 2 threads die beide auf eine Ressorce zugreifen. Ich habe zwar die Idee es mit einer Semathore zu versuchen aber ein Kritischer Abschnitt währe besser da dieser Abschnitt nicht unterbrochen werden darf... Kann mir jemand helfen... Codeabschnitte währen am hilfreichsten. Außerdem weiß ich nicht welche header benutzt wird.
     

  2. #2
    Registriert seit
    Oct 2003
    Beiträge
    1.706
    Hallo,
    Ich habe zwar die Idee es mit einer Semathore zu versuchen aber ein Kritischer Abschnitt währe besser da dieser Abschnitt nicht unterbrochen werden darf.
    Hallo der Begriff "Kritischer Abschnitt" ist ein theoretischer Begriff...
    Praktisch lösen tut man dies durch wechselseitigen Ausschluss.
    Es gibt 4 Bedingungen für eine gute Lösung des wechselseitigen Ausschlusses:
    1. Keine zwei Threads dürfen gleichzeitig in ihren kritischen Abschnitten sein.
    2. Es dürfen keine Annahmen über Geschwindigkeit und Anzahl der CPUs gemacht werden.
    3. Kein Thread darf außerhalb eines kritischen Abschnitts einen anderen Thread am Eintritt in einen kritischen Abschnitt hindern.
    4. Jeder Thread muss die Möglichkeit haben, in endlicher Zeit in seine kritischen Abschnitte eintreten zu dürfen.

    Lösen kannst du dies indem du die von dir angesprochenen Semaphore z.B.
    verwendest... Mutexe (binäre Semaphore) wären auch eine Möglichkeit:

    Hier mal ein bisl Pseudocode für die Lösung mittels binärer Semaphore:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    Semaphore s = 1;
     
    procedure Thread
    begin
      while(true)
      begin
         down(s);
         criticalSection();
         up(s);
      end
    end

    Gruß

    RedWing
     
    "I'm not deaf, I'm ignoring you"
    ----

Ähnliche Themen

  1. Borland C++ Builder
    Von riccardo1 im Forum C/C++
    Antworten: 7
    Letzter Beitrag: 02.05.08, 19:57
  2. 2 Versionen von Borland C++ Builder 6 Pro
    Von Argonsputter im Forum Borland CBuilder und VCL
    Antworten: 0
    Letzter Beitrag: 13.09.07, 15:48
  3. Borland C++ Builder?
    Von Sinac im Forum C/C++
    Antworten: 9
    Letzter Beitrag: 12.12.06, 16:11
  4. Borland C++ Builder + ADO Edit
    Von coVo2k im Forum Borland CBuilder und VCL
    Antworten: 0
    Letzter Beitrag: 11.01.05, 20:16
  5. Borland c++ Builder
    Von js-mueller im Forum C/C++
    Antworten: 11
    Letzter Beitrag: 11.09.03, 12:57