Питхон - Асинхрони процеси

Преглед садржаја
Док уђемо у свет вишеструке обраде, сервера и различитих захтева, морамо знати да постоје различите врсте одговора или понашања, синхроно и асинхрони.
Први се састоји од услуживања захтева према теорији редова, фифо, лифо итд. Односно, док се процес не заврши, не иде на друго, видећи ово понашање, не би био проблем за програм који рукује Теме будући да би могло генерисати неколико Теме за сваки захтев који служи одређеним функцијама.
Затим имамо асинхрону која нам помаже да служимо са иста нит неколико захтева у зависности од њиховог статуса, тако да ако се неколико захтева изврши док један нешто обрађује, можемо да пређемо на следећи или можда не бисмо требали ни чекати да захтев пошаље податке клијенту:

Као што видимо на слици, симулира се рад ћаскања где се он прегледа све док не дође порука за пренос.
Асинхрони улазни и излазни процеси
Када радимо асинхроно читање захтева клијента, није неопходно да у почетку читамо комплетно читање поруке, али можемо то видети мало по мало, захваљујући брзини обраде.
За асинхрони рад у Питхон Имамо две функције које нам могу помоћи, једна је изаберите а други је анкета, од којих је ово друго доступно само за окружења УНИКС, па би могао бити услов да поставимо ограничење ако желимо да направимо вишеплатформски програм, међутим то је решење које најбоље скалира, па морамо узети у обзир ове детаље.
Тхе изаберите функцију узима 3 секвенце као потребне аргументе, са четвртим аргументом који није обавезан и садржи пауза у утакмици У секундама, секвенце су везе на које ћемо чекати, јер 3 одговарају следећим: улаз, излаз, изузетни услови (грешке, изузетци итд.).
Ако не наведемо а пауза у утакмици, функција изаберите чекаће док једна од секвенци не буде спремна за акцију, у супротном, ако наведемо временско ограничење, блокови ће чекати одговарајуће време. Вредности које функција враћа представљају активни подскуп сваке секвенце, на пример прва враћена секвенца ће бити улазна секвенца у којој ћемо имати шта да читамо.
Погледајмо следећи пример кода како имплементирати сервер помоћу изаберите функцију:
 импорт соцкет, изаберите с = соцкет.соцкет () хост = соцкет.гетхостнаме () порт = 1234 с.бинд ((хост, порт)) с.листен (5) инпутс = [с] вхиле Труе: [б] рс, вс, ес = селецт.селецт (инпутс, [], []) [/ б] за р у рс: ако је р с: ц, аддр = с.аццепт () испиши 'Гот цоннецтион фром', аддр инпутс.аппенд (ц) елсе: три: дата = р.рецв (1024) дисцоннецтед = нису подаци осим соцкет.еррор: дисцоннецтед = Труе ако је искључен: принт р.гетпеернаме (), 'дисцоннецтед' инпутс.ремове (р) елсе: принт дата 

Као што видимо, када позовемо изаберите функцију пролазећи 3 обавезне секвенце, прослеђујемо променљиву инпути, који је повезан са оним што сервер снима током слушања на ТЦП порту 1234, тада понављамо да бисмо приказали информације.
Као што видимо, овај аспект имплементације је прилично једноставан и границу ће дати наша креативност приликом израде програма.Да ли вам се допао и помогао овај водич?Можете наградити аутора притиском на ово дугме да бисте му дали позитиван поен

Ви ће помоћи развој сајта, дељење страницу са пријатељима

wave wave wave wave wave