Strategi kanggo nyegah deadLock - 1

"Hai, Amigo!"

"Aku arep pitutur marang kowe bab saperangan Sastranegara kanggo Nyingkiri deadlocks."

"Strategi paling apik yaiku arsitektur sing wicaksana lan seperangkat aturan sing ngatur kapan lan ing urutan apa sampeyan bisa nggunakake kunci (entuk mutexes). Pendekatan klasik kanggo masalah kasebut yaiku ngembangake hirarki kunci lan netepake aturan manawa kunci tartamtu ora bisa ditindakake dituku ing negara sing kunci liyane wis dituku."

"Contone, kadhangkala kunci ditugasake level, lan benang dibutuhake kanggo entuk kunci saka tingkat sing luwih dhuwur menyang level sing luwih murah (nanging entuk kunci ing arah liyane ora diidini). diijini."

"Contone, ing conto sadurunge karo ksatria, kita bisa nambah nomer unik (id) kanggo saben ksatria lan mbutuhake kunci sing angsal saka id luwih gedhe kanggo id cilik."

Tuladha
class KnightUtil
{
 public static void kill(Knight knight1, Knight knight2)
 {
  Knight knightMax = knight1.id > knight2.id ? knight1: knight2;
  Knight knightMin = knight1.id > knight2.id ? knight2: knight1;

  synchronized(knightMax)
  {
   synchronized(knightMin)
   {
    knight2.live = 0;
    knight1.experience +=100;
   }
  }
 }
}

"Solusi sing apik banget."

"Iku solusi sing prasaja banget, nanging aku seneng. Muga-muga bisa migunani kanggo sampeyan nalika sampeyan mikir babagan carane ngatasi masalah deadlock potensial."

"Matur nuwun, Ellie."