SORU
6 EYLÜL 2009, Pazar


Basit Kilitlenme Örnekleri

Yeni başlayanlar için iş parçacığı kilitlenme anlatmak istiyorum. Geçmişte kilitlenmeleri için pek çok örnek, bazı kodlar kullanarak ve bazı resimler (4 cars ünlü gibi) kullanarak gördüm. Ayrıca klasik kolay çıkmazda The Dining Philosophers, ama bu gerçek bir acemi tam olarak kavramak için çok karmaşık olabilir gibi sorunlar var.

Basit bir kod örneği için kilitlenmeleri ne göstermek için arıyorum. Örnek:

  1. Bir ilişki "gerçek" programlama bazı mantıklı senaryo
  2. Çok Kısa, basit ve ileri düz

Ne tavsiye edersiniz?

Teşekkürler

CEVAP
6 EYLÜL 2009, Pazar


Belki basit bir banka durum.

class Account {
  double balance;
  int id;

  void withdraw(double amount){
     balance -= amount;
  } 

  void deposit(double amount){
     balance  = amount;
  } 

   void transfer(Account from, Account to, double amount){
        sync(from);
        sync(to);
           from.withdraw(amount);
           to.deposit(amount);
        release(to);
        release(from);
    }

}

Transfer girişimi olan iki konu var olmalıdır( . açıkçası ^strong>a, b) ve transfer(b, biraynı zamanda, daha sonra bir kilitlenme tersten kaynakları almaya çalışıyorlar çünkü ortaya gidiyor.

Bu kodu da kilitlenme için çözümler arıyoruz için de mükemmeldir. Bu yardımcı olur umarım!

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Digital Bounds

    Digital Boun

    19 Temmuz 2013
  • multimediaGEEKS LLC

    multimediaGE

    3 Mayıs 2010
  • thewinekone

    thewinekone

    17 Aralık 2005