Съдържание
Както знаем Python Той има много библиотеки, които ни позволяват да работим и управляваме връзки в мрежи, независимо дали се свързваме с отдалечени файлове или нашата програма служи като сървър, в основни примери за използване на сокети с Python беше видяно, че с него се работи много лесно с използването на модула гнездоВъпреки това, за да бъде по -стабилно приложение, трябва да можем да обработваме множество връзки.За обработка на множество връзки в Python можем да използваме Раздвояване и от Нарязване на нишки, за да можем да генерираме асинхронни входни и изходни процеси, които ни позволяват да посещаваме няколко връзки едновременно.
Разклоняване и нарязване
Ако сме в първите си стъпки да се научим да програмираме или ако сме правили само структурирано програмиране, може би тези термини може да изглеждат сложни, за да бъдат неизвестни, но те са прости понятия за разбиране и смилане, нека да видим определенията, преди да продължим по -нататък.
Раздвояване: Това е термин, използван в среди UNIX и се състои в направяне на бифуркация, с процес, който го дублираме и след това имаме два равни процеса, но всеки със своя обхват, първоначалният процес е известен като родителски процес, а дублираният процес е известен като дъщерния процес, ако направим аналогия с научната фантастика, можем да ги разглеждаме като паралелни вселени, където съществуват едни и същи неща, само че те могат да се държат различно в същите точки.
Недостатъкът на Раздвояване е, че това може да бъде много скъпо по отношение на ресурсите и затова имаме Нарязване на нишки, а Конец Това е нишка, в този случай нишките са подпроцеси, които принадлежат към един и същ процес, споделящи памет и ресурси, по този начин намаляваме цената на ресурсите на процесора, но чрез споделяне на памет откриваме проблема, че трябва да бъдем много внимателен с елементите, към които Конци за да не доведе до компрометирани операции.
Сега, когато знаем теорията и основните понятия, ще видим някои примери, с които можем да видим приложението Python.
Както казахме в началото благодарение на големия брой модули и библиотеки, съществуващи в Python, създаването на програми с мрежови функционалности е много просто, така че можем да се концентрираме върху логиката, а не върху техническите аспекти.
Нека видим на следващото изображение пример за Раздвояване, тогава ще обясним какво се случва с кода:
Тъй като виждаме, че това приложение е доста просто, нека видим как можем да постигнем нещо подобно, като използваме Конци, на следното изображение имаме пример: