Onları başka kelimelerle söylemeye çalışıyorum.
Bir sunucuda, birlikte çalışan birçok asp.net sitesine sahip olabilirsiniz. Her site bir uygulama alanıdır .
Her birine bir uygulama havuzu atamalısınız . Birçok uygulama etki alanı (site) aynı uygulama havuzuna sahip olabilir ve aynı uygulama havuzuna sahip oldukları için aynı süreçler altında ve aynı hesap altında çalışırlar ve havuzun aynı ayarlarına sahiptirler. Bu havuz yeniden başlarsa, bu havuzların altındaki tüm siteler yeniden başlar.
Artık her havuzda bir veya daha fazla çalışan işlem olabilir . Her çalışan işlem, sitenizi çalıştıran, kendi statik değişkenlerine, farklı başlatma durdurma çağrılarına vb. Sahip olan farklı bir programdır. Farklı çalışan işlemler birlikte iletişim kurmaz ve veri alışverişi yapmanın tek yolu ortak dosyalardan veya ortak bir veritabanından yapılır. Birden fazla çalışan işleminiz varsa ve bunlardan biri uzun süreli hesaplamalar yapıyorsa, diğeri internet aramalarını yönetmeye ve içeriği göstermeye dikkat edebilir.
Tek bir havuza birçok işçi işlemi atadığınızda, o zaman aranan web bahçesini yaparsınız ve siteniz, eğer bir bilgisayar tek bir işlem makinesiyse, birden fazla bilgisayardan çalıştırılır gibi olur.
Her çalışan işlemin birçok iş parçacığı olabilir.
Daha fazla çalışan işlem sizi nasıl etkiler:
Bir çalışan işleminiz olduğunda her şey daha basittir, uygulamanız arasında tüm statik değişkenler aynıdır ve lock
onları senkronize etmek için kullanırsınız.
Birden fazla alt işlem atadığınızda , lock
for statik değişkenleri kullanmaya devam edersiniz , statik değişkenler sitenizin birçok çalıştırması arasında farklı değildir ve ortak bir kaynağınız varsa (örneğin, diskte bir küçük resmin oluşturulması) daha sonra çalışan sürecinizi ile senkronize etmeniz gerekir Mutex
.
Bir not daha. Daha fazla alt işlem yaptığınızda, eşzamansız sayfa yüklemeleri daha sorunsuz olabilir. Asp.net'in oturum işleyicisinde, bir sayfa yüklemesi için tüm süreci kilitleyen küçük bir sorun var - bu iyi ve iyi bilmenize ve idare etmenize bağlı olarak - ya da değiştirmenize bağlı.
Öyleyse, yalnızca birçok işçi süreciyle bir site hakkında konuşalım. Burada, ortak kaynak değişikliğinizi senkronize etmeniz gereken sorunla karşı karşıyasınız Mutex
. Ancak oturum kullanan sayfalar / işleyiciler, oturum onları kilitlediği için eşzamansız değildir. Bu başlangıç için iyidir çünkü birçok noktanın bu senkronizasyonunu kendi kendinize yapmaktan kaçınırsınız.
Bu konuyla ilgili bazı sorular:
Aynı oturumu paylaşırken başka bir web uygulaması işlenirken web uygulaması engellendi
Web hizmetine jQuery Ajax çağrıları senkronize görünüyor
ASP.NET Sunucusu sayfaları eşzamansız olarak
işlemiyor ASP.Net oturumunu tamamen değiştiriyor
Şimdi bu oturum kilidi farklı siteleri etkilemiyor.
Farklı siteler arasında daha fazla çalışılmış süreç, bir sitenin diğerini uzun süren süreçle engellememesine yardımcı olabilir.
Ayrıca farklı siteler arasında daha fazla havuz da yardımcı olabilir, çünkü her havuzda en az bir çalışan işlem vardır, ancak işlem gezginini kullanarak kendi kendinize hatırlayın ve görün, her çalışma süreci bilgisayarınızın daha fazla belleğini ve 16G belleğe sahip büyük bir sunucuyu alır. ve bir SQL sunucusunda çok fazla farklı işlenmiş süreç olamaz - örneğin 100 paylaşılan siteye sahip bir sunucuda, 100 farklı havuzunuz olamaz.