Python - Çoklu Bağlantı

İçindekiler
Bildiğimiz gibi piton Soket kullanımına ilişkin temel örneklerde, ister uzak dosyalara bağlanalım, ister programımız bir sunucu olarak hizmet etsin, ağlardaki bağlantıları çalışmamıza ve yönetmemize izin veren birçok kütüphaneye sahiptir. piton modül kullanımı ile çok kolay işlendiği görülmüştür. prizAncak, daha sağlam bir uygulama olması için birden çok bağlantıyı işleyebilmemiz gerekir.
Birden çok bağlantıyı işlemek için piton kullanabiliriz çatallama ve diş açma, aynı anda birkaç bağlantıya katılmamıza izin veren asenkron giriş ve çıkış süreçleri üretebilmek için.
Çatal ve Diş Açma
Programlamayı öğrenmenin ilk adımlarındaysak ya da sadece yapılandırılmış programlama yaptıysak, belki bu terimler bilinmemek için karmaşık görünebilir, ancak anlaşılması ve sindirilmesi basit kavramlardır, devam etmeden önce tanımlarına bakalım.
çatallama: ortamlarda kullanılan bir terimdir. UNIX ve bir çatallanma yapmaktan oluşur, bir işlemle onu çoğaltırız ve sonra iki eşit işlemimiz olur, ancak her birinin kapsamı vardır, orijinal işlem üst işlem olarak bilinir ve çoğaltılan işlem alt işlem olarak bilinir, eğer yaparsak Bilimkurgu ile bir benzetme yaparsak, onları aynı şeylerin var olduğu, ancak aynı noktalarda farklı davranabildikleri paralel evrenler olarak görebiliriz.
dezavantajı çatallama kaynaklar açısından çok pahalı olabileceği ve bu nedenle diş açma, a Konu Bu bir iş parçacığıdır, bu durumda iş parçacıkları aynı işleme ait, bellek ve kaynakları paylaşan alt işlemlerdir, bu şekilde işlemci kaynaklarının maliyetini düşürürüz, ancak belleği paylaşarak yapmamız gereken sorunu buluruz. olduğu unsurlara çok dikkat İş Parçacığı tehlikeye atılmış işlemlere neden olmamak için.
Artık teoriyi ve temel kavramları bildiğimize göre, uygulamayı görebileceğimiz bazı örnekler göreceğiz. piton.
Başta da söylediğimiz gibi, mevcut çok sayıda modül ve kütüphane sayesinde piton, ağ işlevlerine sahip programlar yapmak çok basittir, bu nedenle teknik yönler yerine mantığa odaklanabiliriz.
Aşağıdaki resimde bir örnek görelim çatallama, sonra kodla ne olduğunu açıklayacağız:

Yaptığımız ilk şey, ihtiyacımız olan modülleri ithal etmek. SocketSunucu, bakmamız gereken önemli ÇatallamaMixIn Her istekte süreçlerin tekrarını yönetmekten kim sorumlu olacak, sonra sınıfı tanımlarız sunucu Y işleyiciİşleyici içine, gelen bağlantılarda ne olacağını yönetecek olan bir kurucu yerleştiririz, bu durumda istemcinin adını alacak ve bir mesajın ekran çıktısını alacaktır; Son olarak Server sınıfını somutlaştırıyoruz, parametreleri ona iletiyoruz, önce bağlantıları kabul edeceği port ve ardından sınıf işleyici, sonunda yöntemi çağırıyoruz serve_forever istemci isteklerini yönetebilmesi için sunucuyu başlatmak için.
Bu uygulamanın oldukça basit olduğunu gördüğümüze göre, kullanarak benzer bir şeyi nasıl başarabileceğimizi görelim. İş Parçacığı, aşağıdaki resimde bir örneğimiz var:

Kullanmak yerine, yukarıdaki kodun neredeyse tamamen aynı olduğunu fark edebiliriz. ÇatallamaMixIn, kullanırız Diş AçmaMixInGördüğümüz gibi, bunlar çoklu bağlantıları kabul eden programlar yaparken bu davranış için anahtar kütüphanelerdir.Bu Eğitimi beğendiniz ve yardım ettiniz mi?Yazara olumlu puan vermek için bu düğmeye basarak yazarı ödüllendirebilirsiniz.
wave wave wave wave wave