Çok iş parçacıklı bir uygulamada onaylanmış bir uygulama olup olmadığını merak ediyorum. Her bir iş parçacığına bir adet DAO'm var mı, yoksa bir DAO'yu iş parçacığı için güvenli bir tekli yapmalı mıyım?Bir iş parçacığı veya iş parçacığı için bir DAO DAO?
cevap
Bu gerçekten veri erişimi için kullandığınız mekanizmaya çok bağlıdır. Çok ölçeklenebilir bir veri erişiminiz varsa ve bir çok iş parçacığınız varsa, bir tür iş parçacığı kullanarak statik veri erişimi avantajlı olabilir.
Ölçeklenebilir veri erişiminiz yoksa, sağlayıcınız her işlem için birden çok ileti iş parçacığını desteklemiyor ya da yalnızca bu noktada ölçeklenebilirliğe ihtiyacınız yok, uygun senkronizasyona sahip bir tekli kullanarak daha kolay ve daha kolay uygulanır .
Çoğu işletme stili uygulaması için, kişisel olarak tekil yaklaşımın sürdürülmesinin daha kolay olduğunu ve muhtemelen daha iyi olduğunu düşünürüm - başka bir nedenden ötürü, etkili bir şekilde test etmek çok daha kolay değildir. Veri erişimi için muhtemelen birden fazla iş parçacığı olması gerekli değildir, çünkü veri erişimi, kullanılabilirliği etkileyen bir darboğaz olmayacaktır (doğru şekilde tasarlıyorsanız ve toplu iş isteklerini uygun şekilde düzenlerseniz).
kullanın iyi, başvurunuz mimarisini uygun yaklaşım sürece:
1) Kişisel veri erişim nesneleri bu durumda bir iş parçacığı güvenli singleton düşkündürler gerektiğini oluşturmak için pahalıdır.
2) Nesneleriniz, Active Record pattern'daki gibi değişebilir durumunu korur. (Zaman aşımı eşikleri gibi ölçülebilir DAO yapılandırma durumu sayılmaz.)
- 1. iş parçacığı içinde yerel depolama iş parçacığı
- 2. Bir "gerçek" iş parçacığı
- 3. İş parçacığı tanıtıcısı iş parçacığı tanıtıcısı
- 4. iş parçacığı
- 5. Bir iş parçacığı özellikle blok
- 6. Bir daemon iş parçacığı yalnızca
- 7. Bir iş parçacığı oluşturma işlevine
- 8. başka bir iş parçacığı (Net)
- 9. UEFI'da bir iş parçacığı oluşturma
- 10. .NET'te bir iş parçacığı başlatılıyor
- 11. Ana iş parçacığı
- 12. Windows iş parçacığı havuzu ve CLR iş parçacığı havuzu
- 13. Ayrı iş parçacığı içinde
- 14. Qt: Arka plan iş parçacığı yenileme UI iş parçacığı
- 15. NSMutableDictionary iş parçacığı güvenliği
- 16. Django/sqlite3 "OperationalError: iş parçacığı yok" iş parçacığı üzerinde
- 17. Ayrı iş parçacığı
- 18. CountdownTimer UI iş parçacığı güncelleştiren çalışan iş parçacığı içinde
- 19. Tomcat iş parçacığı havuzundaki iş parçacığı sayısı nasıl artırılır?
- 20. Kinect ile iş parçacığı
- 21. İş parçacığı .net 4
- 22. İş parçacığı durduruluyor
- 23. WPF iş parçacığı C#
- 24. İş parçacığı, iki iş parçacığı arasındaki iletişim C#
- 25. UI iş parçacığı üzerinde görev sürdürme, arka plan iş parçacığı
- 26. Bir iş parçacığı yakalanmamış özel durum, yalnızca iş parçacığı veya tüm işlemi mi öldürüyor?
- 27. gdb - iş parçacığı günlüğü
- 28. İş parçacığı güvenli Queue
- 29. İşleyici vs İş parçacığı
- 30. Hatalı iş parçacığı
DAO'lar aslında iki kaynağa bağlanıyor: SimpleDB ve RPC aracılığıyla bir PHP API'si. Tahminimce, darboğaz sorunlarından kaçınmak için muhtemelen 100 iş parçacığı ile her bir iş parçacığı için DAO kullanmalıyım. Bu durumda hiç belirgin bir neden görmüyor musunuz? – pondermatic
DAO'yu tekil yapmak ve dahili olarak sadece eşzamansız çalışmak için muhtemelen daha iyi. Daha sonra gerektiği gibi bir ThreadPool kullanarak ölçeklenebilir ... Bu web istekleri asenkronize büyük iş gibi, özellikle PHP API için doğrudur ve çoğu web çerçeveleri bunun için iyi bir destek var ... –