Автоматты аударма пайдаланылды

Синхронды vs асинхронды код. Неліктен бұл өнімділік үшін маңызды

Бағдарламалау әлемінде тапсырмаларды орындаудың екі негізгі тәсілі бар: синхронды және асинхронды код. Бұл ұғымдар бір қарағанда күрделі болып көрінуі мүмкін, бірақ күнделікті өмірдегі қарапайым ұқсастықтарды қолдану арқылы түсіну оңай. Мысалы, кофе машинасын елестетіп көріңіз. Ол қалай жұмыс істейді? Егер сіз машинаның сүйікті латте жасауын күткен болсаңыз, онда сіз асинхрондылық идеясымен таныссыз. Бұл тәсілдердің қалай ерекшеленетінін және асинхронды кодтың өнімділік үшін неге соншалықты маңызды екенін қарастырайық.

Синхронды код дегеніміз не?

Синхронды код біртіндеп, біртіндеп орындалады. Бұл сіз кофе машинасында тұрып, оның кофе жасау процесін аяқтауын күткен жағдайға ұқсайды. Көлік жұмыс істеп тұрғанда, сіз басқа ешнәрсе жасай алмайсыз-сіз жай ғана тұрып, қарап отырсыз. Бағдарламалауда бұл әр операция келесі операция басталмай тұрып аяқталуы керек дегенді білдіреді.

Синхронды кодтың мысалы: javascriptCopy123console.log ("біз кофе дайындауды бастаймыз...");makeCoffee(); //

Кофе дайын болғанша күтемізconsole.журнал ("Кофе дайын!");

Егер makeCoffee() 5 минутты алса, бағдарлама осы уақытқа дейін "қатып қалады". Бұл тапсырма аяқталғанға дейін басқа әрекеттер жасалмайды.

Асинхронды код дегеніміз не?

Асинхронды код тапсырмаларды параллель немесе негізгі орындалу ағынын бұғаттамай орындауға мүмкіндік береді. Мысалы, кофе машинасымен оралайық. Елестетіп көріңізші, сіз "кофе жасау" түймесін басып, содан кейін басқа нәрселермен айналыстыңыз: поштаны тексеріп, жаңалықтарды оқыдыңыз немесе тіпті таңғы ас дайындауды бастадыңыз. Кофе дайын болғанда, машина сізге бұл туралы дыбыстық сигналмен хабарлайды. Сіз күтуге уақыт жұмсамадыңыз, бірақ оны тиімді пайдаландыңыз.

Асинхронды кодтың мысалы: javascriptcopy12345 con console.log ("біз кофе дайындауды бастаймыз...");makeCoffeeAsync(() => {console.журнал ("Кофе дайын!");});console.log ("басқа нәрселермен айналысуға болады...");

Мұнда makecoffeeasync фондық режимде жұмыс істейді және бағдарлама оның аяқталуын күтпестен жұмысын жалғастырады. Кофе дайын болған кезде callback шақырылады-бұл туралы хабарлайтын функция.Асинхрондылықтың мысалы ретінде кофе машинасы. 

Кофе машинасының ұқсастығын қарастырайық. Таңертең жұмысқа асығып бара жатқаныңызды елестетіп көріңіз. Егер сіз синхронды тәсілді қолдансаңыз, машинаның жанында тұрып, оның кофе дайындауын күтуіңіз керек. Бұл 5 минутты алады және осы уақыт ішінде сіз басқа ештеңе жасай алмайсыз.Енді асинхронды тәсілді қолданып жатқаныңызды елестетіп көріңіз . Сіз машинаны іске қосасыз, содан кейін:

Тістеріңізді тазалаңыз.

Сэндвич жасаңыз.

Поштаны тексеріңіз.

Кофе дайын болған кезде машина дыбыстық сигнал шығарады және сіз оны ала аласыз. Осылайша сіз бір уақытта бірнеше тапсырманы орындау арқылы уақытыңызды тиімді пайдаланасыз.

Неліктен бұл өнімділік үшін маңызды?

Уақытты үнемдеу

Нақты қосымшаларда көптеген тапсырмалар уақытты қажет етеді: серверден деректерді жүктеу, файлдарды оқу, мәліметтер базасымен жұмыс істеу және т.б. егер сіз синхронды кодты қолдансаңыз, бағдарлама осы операциялардың орындалу уақытында "қатып қалады". Асинхронды код нәтижелер күтілгенше басқа тапсырмаларды орындауға мүмкіндік береді.

Пайдаланушы тәжірибесін жақсарту

Серверден деректерді жүктейтін сайтты ашқаныңызды елестетіп көріңіз. Егер сайт синхронды кодты қолданса, деректер алынғанша бет "қатып қалады". Бұл пайдаланушыларды тітіркендіреді. Асинхронды тәсіл жүктеуді (мысалы, спиннер) көрсетуге және интерфейспен өзара әрекеттесуді жалғастыруға мүмкіндік береді.

Көптеген тапсырмаларды өңдеу

Қазіргі заманғы қосымшалар көбінесе бір уақытта көптеген тапсырмаларды орындайды: сұраныстарды өңдеу, мәліметтер базасымен жұмыс істеу, хабарламалар жіберу және т.б. асинхронды код жүйені шамадан тыс жүктеместен осы тапсырмаларды тиімді басқаруға мүмкіндік береді.

Масштабтау

Мысалы, Веб-серверлер асинхрондылықтың арқасында мыңдаған сұраныстарды бір уақытта өңдей алады. Егер әрбір сұрау басқалардың орындалуына тосқауыл қойса, жүйе тез жұмыс істемейтін еді.

Бұл шындықта қалай жұмыс істейді?

Веб-қосымшаның мысалын қарастырыңыз. Пайдаланушы деректерді жүктеу туралы сұрау жібергенде, сервер мүмкін:

Синхронды : сұрауды өңдеңіз, дерекқордан жауап күтіңіз, содан кейін нәтижені пайдаланушыға жіберіңіз. Бұл серверді баяулатады, әсіресе көптеген сұраулармен.

Асинхронды : сұрауды қабылдаңыз, оны кезекке жіберіңіз, басқа сұрауларды өңдеуді жалғастырыңыз, содан кейін деректер дайын болған кезде нәтижені қайтарыңыз. Бұл өнімділікті айтарлықтай арттырады.

Синхронды және асинхронды код-бұл тапсырмаларды орындаудың екі түрлі тәсілі, олардың әрқайсысының өзіндік артықшылықтары бар. Синхронды кодты іске асыру оңайырақ, бірақ ол өнімділікке кедергі келтіруі мүмкін. Асинхронды кодты меңгеру қиынырақ болғанымен, тиімдірек және масштабталатын қолданбаларды жасауға мүмкіндік береді.

Кофе машинасының ұқсастығын қолдана отырып, асинхрондылық — бұл уақытты тиімді пайдалану тәсілі деп айтуға болады. Бағдарламалауда бұл жылдам, жауап беретін және сенімді жүйелерді құруды білдіреді. Сондықтан, егер сіз пайдаланушылар мен бизнестің талаптарын қанағаттандыратын заманауи код жазғыңыз келсе, асинхронды бағдарламалауды үйрену — бұл міндетті қадам.

Ақыр соңында, "кофе ішу және бір уақытта жұмыс істеу"мүмкіндігінен кім бас тартады?

Пікірлер 0

Кіру пікір қалдыру үшін