Deadlock Source-code



  • Guten Tag,
    ich bin auf der Suche nach einem Deadlock-source-code. Leider finde ich trotz langer Suche nichts. Kann mir jemand weiter helfen?
    Grüße



  • gibts nicht



  • while(1)



  • Vielleicht hier:

    http://www.dreadlockz.net



  • was habt ihr für ein Problem? Ich suche verwzeifelt einen Source Code für (einfach gesagt) eine Pattstellung zwischen zwei Threads.(=Deadlock)
    Danke für nützliche Antworten



  • void threadA ()
    {
        lock(resource1);
        lock(resource2);
    
        use(resource1,resource2);
    
        unlock...
    }
    
    void threadB ()
    {
        lock(resource2);
        lock(resource1);
    
        use(resource1,resource2);
    
        unlock...
    }
    

    threadA: Sperrt 1 und wird unterbrochen
    threadB: Sperrt 2 und will 1 sperren, da nicht verfügbar gibt er freiwillig ab
    threadA: Will 2 sperren, ebenfalls nicht verfügbar gibt auch ab
    Deadlock

    MfG SideWinder

    Edit@Rest: Was geht mit euch? 🙄



  • Hättest du die Situation mit den Threads schon am Anfang geschildert hättest du auch keine blöden Antworten bekommen.
    Kannst auch genausogut innen auto-forum gehen und schreiben "wer kann mir mein kaputtes türschloss erklären?". Das ist zwar dein Gedankengang aber für die Informationsübertragung zu den fleissigen Thread-Beantwortern zu wenig.



  • Die ursprüngliche Fragestellung war durchaus ok, SideWinder hat ja gezeigt, dass man darauf durchaus auch brauchbare Antworten geben kann...



  • Könnt ihr mal ein reales Beispiel bringen?



  • resource schrieb:

    Könnt ihr mal ein reales Beispiel bringen?

    Was war an dem Beispiel nicht real? In normalen Programmen versucht man das ja möglichst zu vermeiden, so dass es in freier Wildbahn nicht vorkommen sollte.



  • Aber hier noch was einfaches:

    pthread_mutext_t mutex = PTHREAD_MUTEX_INITIALIZER;

    void func() 
    {
    pthread_mutex_lock(&mutex);
    // ...
    func();
    // ...
    pthread_mutex_unlock(&mutex);
    }
    


  • nman schrieb:

    Die ursprüngliche Fragestellung war durchaus ok, SideWinder hat ja gezeigt, dass man darauf durchaus auch brauchbare Antworten geben kann...

    Häh? 😕
    Nicht dass "Deadlock" als Stichwort nicht genug sein sollte, aber wie hat SideWinder denn irgendwas gezeigt wenn er erst nach der angesprochenen Klarstellung geantwortet hat?



  • finix schrieb:

    Nicht dass "Deadlock" als Stichwort nicht genug sein sollte, aber wie hat SideWinder denn irgendwas gezeigt wenn er erst nach der angesprochenen Klarstellung geantwortet hat?

    Ach bitte, den Begriff Deadlock hat nicht der OP erfunden und SideWinder kannte ihn garantiert auch schon vor dieser "Klarstellung".

    Was ein Deadlock ist, sollte man entweder wissen, oder sich zumindest dumme Antworten verkneifen können, wenn man es nicht weiß. 👎



  • HulkDerSchreckliche2000 schrieb:

    Hättest du die Situation mit den Threads schon am Anfang geschildert hättest du auch keine blöden Antworten bekommen.
    Kannst auch genausogut innen auto-forum gehen und schreiben "wer kann mir mein kaputtes türschloss erklären?". Das ist zwar dein Gedankengang aber für die Informationsübertragung zu den fleissigen Thread-Beantwortern zu wenig.

    Ich bin nicht der OP, ich habe nur auf die Frage geantwortet. Das bei einem Deadlock immer 2 Prozesse oder 2 Threads da sein müssen ist allgemein bekannt.

    Nicht dass "Deadlock" als Stichwort nicht genug sein sollte, aber wie hat SideWinder denn irgendwas gezeigt wenn er erst nach der angesprochenen Klarstellung geantwortet hat?

    Nach welcher Klarstellung? 😕

    @nman: Sonst hätte man mich in ADAT nicht über den ersten Jahrgang hinaus gelassen 😃

    MfG SideWinder



  • nman schrieb:

    finix schrieb:

    Nicht dass "Deadlock" als Stichwort nicht genug sein sollte, aber wie hat SideWinder denn irgendwas gezeigt wenn er erst nach der angesprochenen Klarstellung geantwortet hat?

    Ach bitte, den Begriff Deadlock hat nicht der OP erfunden und SideWinder kannte ihn garantiert auch schon vor dieser "Klarstellung".

    Schon wieder: Häh? 😕
    Einem von uns beiden scheint es an Lesekompetenz zu mangeln; aber durchaus wahrscheinlich dass ich den Ton deiner Aussage überaus fehlinterpretiere.

    Nochmal zur Verdeutlichung: wenn du meinen Ausdruck der Verwunderung noch einmal kurz überfliegst wirst du feststellen dass ich nicht in Abrede stellte dass "Deadlock", in einem Programmierer-Forum, ein geläufiger Begriff sein sollte. Ich habe mich lediglich gewundert wie deine Aussage zustande kam, da SideWinders Post ~40min nach "..."s erklärendem Post kam.

    SideWinder schrieb:

    HulkDerSchreckliche2000 schrieb:

    [SNIP]

    Ich bin nicht der OP, ich habe nur auf die Frage geantwortet. Das bei einem Deadlock immer 2 Prozesse oder 2 Threads da sein müssen ist allgemein bekannt.

    Du warst, offensichtlich ( 🙄 ), auch gar nicht gemeint - so zumindest meine Interpretation...

    SideWinder schrieb:

    Nach welcher Klarstellung? 😕

    ...:"(einfach gesagt) eine Pattstellung zwischen zwei Threads.(=Deadlock)"



  • finix schrieb:

    Schon wieder: Häh? 😕
    Einem von uns beiden scheint es an Lesekompetenz zu mangeln; aber durchaus wahrscheinlich dass ich den Ton deiner Aussage überaus fehlinterpretiere.

    Nicht den Ton meiner Aussage, sondern eher die Aussage selbst.

    Nochmal zur Verdeutlichung: wenn du meinen Ausdruck der Verwunderung noch einmal kurz überfliegst wirst du feststellen dass ich nicht in Abrede stellte dass "Deadlock", in einem Programmierer-Forum, ein geläufiger Begriff sein sollte. Ich habe mich lediglich gewundert wie deine Aussage zustande kam, da SideWinders Post ~40min nach "..."s erklärendem Post kam.

    Welche Aussage denn? Ich habe lediglich HulkDerSchreckliche2000 widersprochen, da Side die "Klarstellung" keinesfalls gebraucht hätte. Durch eine zweizeilige Erklärung ist ihm bestimmt nicht das Sourcecode-Beispiel eingefallen.

    Daher meine Antwort an HulkDerSchreckliche2000, der immerhin ganz offensichtlich der Ansicht war, dass man in einem Programmierforum nicht einfach nach Deadlocks fragen darf, ohne genauer zu werden bzw. dass die dämlichen Antworten gerechtfertigt sind, nur weil hier einige Leute nicht in der Lage sind, zu ihnen unbekannten Begriffen mal die Wikipedia zu befragen.



  • Hm. Ich glaube das führt zu nichts. Ist ja auch nicht weiter tragisch 🙂

    nman schrieb:

    Welche Aussage denn? Ich habe lediglich HulkDerSchreckliche2000 widersprochen, da Side die "Klarstellung" keinesfalls gebraucht hätte. Durch eine zweizeilige Erklärung ist ihm bestimmt nicht das Sourcecode-Beispiel eingefallen.

    Ich bezweifle auch nicht dass Side diese Erklärung nicht benötigte, weder um zu wissen worum's geht noch um das Beispiel zu bringen.
    Aber du kannst doch nicht Sides Post als Beleg dafür bringen dass der OP an sich schon verständlich genug war wenn er erst nach der Erklärung gepostet hat.
    Hatte mich nur über deine Argumentationsweise gewundert...



  • Ist doch auch völlig egal, ob Dir die Argumentation zusagt, oder nicht.

    Die Frage nach einem Beispiel für einen "Deadlock" war klar genug, immerhin hat der Begriff im Rahmen der Informatik eine klar definierte Bedeutung, die Reaktionen waren also einfach unangebracht und eine weitere Erläuterung völlig unnötig, auch wenn das Gegenteil behauptet wurde. Um mehr ging es nicht.



  • nman schrieb:

    Ist doch auch völlig egal, ob Dir die Argumentation zusagt, oder nicht.

    Ja, sehe ich, und wie gesagt, auch mir ist es nicht direkt wichtig; das alles ändert aber nichts daran dass sie komplett unlogisch war.



  • finix schrieb:

    das alles ändert aber nichts daran dass sie komplett unlogisch war.

    Deine Meinung wird hiermit zur Kenntnis genommen.

    Da ich aber momentan weder Zeit noch Lust habe, lange darüber zu diskutieren, schlage ich vor, dass wir den Thread hier nicht weiter zumüllen. Wenn es Dir ein großes Anliegen ist, dann steht es Dir frei, mir eine Mail zu schreiben, bei der es mir dann freisteht, sie zu ignorieren. 😉



  • Nein, ich werde dir keine Mail schreiben, oder sonst was. Ging lediglich um diesen einen Punkt:

    1. OP stellt Frage
    2. ...
    3. OP erläutert nochmals
    4. Side antwortet
    5. ...
    6. "_Wegen_ 4. war 3. unnötig"
    

    Sieh es ein oder lass es 😉


Anmelden zum Antworten