SORU
12 Kasım 2011, CUMARTESİ


Aktör modeli: ayrık Neden özel? Ya da, neden başka bir dile ihtiyacınız var mı?

Eğer x öğrenme araştırıyordum, ve sonuç olarak, okuma (Tamam, kaymağını) aktör modeli hakkında.

Anladığım kadarıyla, aktör modeli sadece fonksiyonları bir dizi (hafif iş parçacığı denilen içinde çalışacak "birbirleriyle sadece üzerinden ileti gönderme") ayrık, süreç.

Bu oldukça önemsiz C veya herhangi başka bir dilde uygulamak gibi görünüyor:

class BaseActor {
    std::queue<BaseMessage*> messages;
    CriticalSection messagecs;
    BaseMessage* Pop();
public:
    void Push(BaseMessage* message)
    {
        auto scopedlock = messagecs.AquireScopedLock();
        messagecs.push(message);
    }
    virtual void ActorFn() = 0;
    virtual ~BaseActor() {} = 0;
}

İşlemler her türetilmiş bir BaseActor bir örnek olmak. Aktörler birbirleriyle iletişim vasıtası ile ileti geçirme. (yani, itmek). Aktörlerin diğer aktörler onları bulmak için olanak sağlayan başlatma üzerinde merkezi bir harita ile kaydetmek ve merkezi bir işlevi onları çalıştırmak için izin verir.

Şimdi, kayıp, ya da daha doğrusu, bir önemli konu da burada, yani parlatma olduğumu anlıyorum: verimli eksikliği tek bir Oyuncu haksız yere çok fazla zaman tüketmek anlamına gelir. Ama çapraz platform coroutines C bu kadar zor yapan başlıca şey. (Örneğin Windows lifleri vardır.)

Eksik olsa da, ben başka bir şey var mı, yoksa bu model gerçekten bu kadar belli mi?

Kesinlikle alev burada bir savaş başlatmak için çalışıyorum değilim, ben sadece neyi kaçırdığımı anlamak istiyorum, Bu aslında ben zaten biraz hakkında eşzamanlı kod neden edebilmek için ne gibi.

CEVAP
12 Kasım 2011, CUMARTESİ


C kodu adalet, izolasyon, arıza tespiti veya Ayrık aktör modeline uygun olarak getiren şeyler nelerdir, hangi dağıtım ile ilgili değil.

  • Hiçbir oyuncu başka bir oyuncu (adalet) aç kalmasına izin verilir
  • Eğer bir aktör çökerse, sadece aktör (izolasyon) etkilemesi gerek
  • Eğer bir aktör çökerse, diğer aktörleri tespit etmek ve bu kaza için tepki için (arıza tespiti) olmalıdır
  • Aktörler ise (dağıtım) aynı makinede gibi bir ağ üzerinden iletişim kurmak gerekir

Ayrıca ışın SMU emülatör getiriyor JİT planlama aktörleri, hareket onlara temel olan şu anda da en az kullanımı ve ayrıca uykusuna yatar bu iş parçacığı üzerinde bazı çekirdekler ise onlar artık gerekli.

Buna ek olarak, tüm kütüphaneleri ve araçları Ayrık yazılmış bu dünya çalışır yol olduğunu varsayalım ve buna göre dizayn edilebilir.

Bunlar C yapmak imkansız değildir , ama eğer eğer x büyük donanım ve işletim sistemi yapılandırmaları hemen hemen tüm çalışır olması eklerseniz giderek daha zor olsun.

edit: Sadece ayrık tarzı ne gördüğünü hakkında Ulf Wiger tarafından bir açıklama buldum eşzamanlılık olarak.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ChasesAndCrashes

    ChasesAndCra

    31 Temmuz 2009
  • EmmightySofia

    EmmightySofi

    25 EYLÜL 2011
  • Pál Zoltán Illés

    Pál Zoltán

    30 NİSAN 2007