Асинхронний семафор - це структура, яка використовується в асинхронних моделях програмування. Її мета — заблокувати fire-дію, дозволяючи йому виконатися тільки після того, як група інших, асинхронних дій виконається повністю.
Асинхронний семафор — специфічний тип абстрактної структури даних семафор в світі асинхронного програмування.
Концепцію семафор винайшов голландський вчений Едсгер Дейкстра.
Структура асинхронного семафора
Асинхронний семафор приймає функцію як аргумент: Цей аргумент зазвичай називають «fire-функція». Fire-функція буде виконана після того, як всі асинхронні дії будуть завершені.
Асинхронний семафор також має блокуючу змінну: лічильник, який зберігає число невиконаних на даний момент асинхронних дій, що залишилися в черзі. Коли цей лічильник стає рівним нулю, всі асинхронні дії вже завершилися і викликається fire-функція.
Асинхронний семафор має дві додаткові функції:
- Функція v (): при виклику цієї функції, значення внутрішньої блокує змінної збільшується. Це збільшення характеризує додавання одного з асинхронних дій в чергу і очікування їм процесорного часу для виконання.
- Функція p (): коли асинхронне дія завершується, викликається функція р (). Функція p () зменшує значення внутрішньої блокує змінної. Виконане асинхронне дія завершується і видаляється з черги. Функція p () викликається зсередини завершеного асинхронного дії функції зворотного виклику. Функція p () також перевіряє рівність нулю змінної, яка характеризує кількість асинхронних дій в черзі. Якщо це так, всі дії були завершені, і fire-функція може бути викликана.
Використання асинхронного семафора
Всякий раз, коли програміст викликає одне з асинхронних дій (яке насправді буде виконане потім, коли звільниться процесорний час), програміст також викликає функцію v () асинхронного семафора з метою збільшення внутрішньої змінної блокування, яка характеризує факт додавання асинхронного дії в чергу.
Коли зворотний виклик цій асинхронної функції закінчив своє виконання, викликається функція p (), яка зменшує внутрішню змінну блокування. Це відображає той факт, що асинхронне дію завершено.
Функція p () також перевіряє, чи дорівнює нулю змінна блокування. Якщо це так, значить все асинхронні дії були завершені і «fire-функція» буде викликана.
Асинхронний семафор ефективний, коли асинхронні дії виконуються незалежно.
Примітки
Посилання
Ця стаття не містить . (лютий 2017) |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Asinhronnij semafor ce struktura yaka vikoristovuyetsya v asinhronnih modelyah programuvannya Yiyi meta zablokuvati fire diyu dozvolyayuchi jomu vikonatisya tilki pislya togo yak grupa inshih asinhronnih dij vikonayetsya povnistyu Asinhronnij semafor specifichnij tip abstraktnoyi strukturi danih semafor v sviti asinhronnogo programuvannya Koncepciyu semafor vinajshov gollandskij vchenij Edsger Dejkstra Struktura asinhronnogo semaforaAsinhronnij semafor prijmaye funkciyu yak argument Cej argument zazvichaj nazivayut fire funkciya Fire funkciya bude vikonana pislya togo yak vsi asinhronni diyi budut zaversheni Asinhronnij semafor takozh maye blokuyuchu zminnu lichilnik yakij zberigaye chislo nevikonanih na danij moment asinhronnih dij sho zalishilisya v cherzi Koli cej lichilnik staye rivnim nulyu vsi asinhronni diyi vzhe zavershilisya i viklikayetsya fire funkciya Asinhronnij semafor maye dvi dodatkovi funkciyi Funkciya v pri vikliku ciyeyi funkciyi znachennya vnutrishnoyi blokuye zminnoyi zbilshuyetsya Ce zbilshennya harakterizuye dodavannya odnogo z asinhronnih dij v chergu i ochikuvannya yim procesornogo chasu dlya vikonannya Funkciya p koli asinhronne diya zavershuyetsya viklikayetsya funkciya r Funkciya p zmenshuye znachennya vnutrishnoyi blokuye zminnoyi Vikonane asinhronne diya zavershuyetsya i vidalyayetsya z chergi Funkciya p viklikayetsya zseredini zavershenogo asinhronnogo diyi funkciyi zvorotnogo vikliku Funkciya p takozh pereviryaye rivnist nulyu zminnoyi yaka harakterizuye kilkist asinhronnih dij v cherzi Yaksho ce tak vsi diyi buli zaversheni i fire funkciya mozhe buti viklikana Vikoristannya asinhronnogo semaforaVsyakij raz koli programist viklikaye odne z asinhronnih dij yake naspravdi bude vikonane potim koli zvilnitsya procesornij chas programist takozh viklikaye funkciyu v asinhronnogo semafora z metoyu zbilshennya vnutrishnoyi zminnoyi blokuvannya yaka harakterizuye fakt dodavannya asinhronnogo diyi v chergu Koli zvorotnij viklik cij asinhronnoyi funkciyi zakinchiv svoye vikonannya viklikayetsya funkciya p yaka zmenshuye vnutrishnyu zminnu blokuvannya Ce vidobrazhaye toj fakt sho asinhronne diyu zaversheno Funkciya p takozh pereviryaye chi dorivnyuye nulyu zminna blokuvannya Yaksho ce tak znachit vse asinhronni diyi buli zaversheni i fire funkciya bude viklikana Asinhronnij semafor efektivnij koli asinhronni diyi vikonuyutsya nezalezhno PrimitkiPosilannyaCya stattya ne mistit posilan na dzherela Vi mozhete dopomogti polipshiti cyu stattyu dodavshi posilannya na nadijni avtoritetni dzherela Material bez dzherel mozhe buti piddano sumnivu ta vilucheno lyutij 2017