В інформатиці, відношення відношення happened-before (англ. happened-before — «сталося раніше») (позначається: ) - це відношення між результатом двох подій, таким чином, що якщо одна подія повинна відбутися до іншої події, результат повинен відображати це, навіть якщо ці події насправді виконуються поза порядком (як правило, для оптимізації потоку програми). Це включає впорядкування подій на основі потенційного причинно-наслідкового зв’язку пар подій у паралельній системі, особливо розподілених систем . Його сформулював Леслі Лампорт . Спеціально для Java відносини " раніше" - це гарантія того, що пам'ять, записана в оператор A, є видимою для оператора B, тобто те, що A завершує його запис до того, як твердження B розпочне його читання. [1] [ 6 січня 2020 у Wayback Machine.]
Ставлення happened-before формально визначається як найменш суворий частковий порядок подій:
- Якщо події і відбуваються в одному і тому ж процесі, якщо поява події передує виникнення події .
- Якщо подія це відправлення повідомлень та подія - це прийом повідомлень, відправлених у разі , .
Якщо між подіями в даній системі існують інші причинно-наслідкові зв’язки, наприклад, між створенням процесу та його першою подією, ці зв'язки також додаються до визначення.
Як і всі суворі часткові порядки, відносини, що відбулися раніше, є транзитивними, нерефлексивними та антисиметричними, тобто:
- , якщо і , потім (транзитивність). Це означає, що для будь-яких трьох подій , якщо сталося раніше , і сталося раніше , потім повинно відбуватися раніше .
- (нерефлексивність). Це означає, що жодна подія не може відбутися перед собою.
- де , якщо потім (антисиметрія). Це означає, що для будь-яких двох різних подій , якщо сталося раніше потім не могло статися раніше .
Процеси, що складають розподілену систему, не знають відношення, що сталося раніше, якщо вони не використовують [en], наприклад, [en] або [en] . Це дозволяє розробляти алгоритми взаємного виключення та такі завдання, як налагодження чи оптимізація розподілених систем.
На цю статтю не посилаються інші статті Вікіпедії. Будь ласка розставте посилання відповідно до . |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
V informatici vidnoshennya vidnoshennya happened before angl happened before stalosya ranishe poznachayetsya displaystyle to ce vidnoshennya mizh rezultatom dvoh podij takim chinom sho yaksho odna podiya povinna vidbutisya do inshoyi podiyi rezultat povinen vidobrazhati ce navit yaksho ci podiyi naspravdi vikonuyutsya poza poryadkom yak pravilo dlya optimizaciyi potoku programi Ce vklyuchaye vporyadkuvannya podij na osnovi potencijnogo prichinno naslidkovogo zv yazku par podij u paralelnij sistemi osoblivo rozpodilenih sistem Jogo sformulyuvav Lesli Lamport Specialno dlya Java vidnosini ranishe ce garantiya togo sho pam yat zapisana v operator A ye vidimoyu dlya operatora B tobto te sho A zavershuye jogo zapis do togo yak tverdzhennya B rozpochne jogo chitannya 1 6 sichnya 2020 u Wayback Machine Stavlennya happened before formalno viznachayetsya yak najmensh suvorij chastkovij poryadok podij Yaksho podiyi a displaystyle a i b displaystyle b vidbuvayutsya v odnomu i tomu zh procesi a b displaystyle a to b yaksho poyava podiyi a displaystyle a pereduye viniknennya podiyi b displaystyle b Yaksho podiya a displaystyle a ce vidpravlennya povidomlen ta podiya b displaystyle b ce prijom povidomlen vidpravlenih u razi a displaystyle a a b displaystyle a to b Yaksho mizh podiyami v danij sistemi isnuyut inshi prichinno naslidkovi zv yazki napriklad mizh stvorennyam procesu ta jogo pershoyu podiyeyu ci zv yazki takozh dodayutsya do viznachennya Yak i vsi suvori chastkovi poryadki vidnosini sho vidbulisya ranishe ye tranzitivnimi nerefleksivnimi ta antisimetrichnimi tobto a b c displaystyle forall a b c yaksho a b displaystyle a to b i b c displaystyle b to c potim a c displaystyle a to c tranzitivnist Ce oznachaye sho dlya bud yakih troh podij a b c displaystyle a b c yaksho a displaystyle a stalosya ranishe b displaystyle b i b displaystyle b stalosya ranishe c displaystyle c potim a displaystyle a povinno vidbuvatisya ranishe c displaystyle c a a a displaystyle forall a a nrightarrow a nerefleksivnist Ce oznachaye sho zhodna podiya ne mozhe vidbutisya pered soboyu a b displaystyle forall a b de a b displaystyle a neq b yaksho a b displaystyle a to b potim b a displaystyle b nrightarrow a antisimetriya Ce oznachaye sho dlya bud yakih dvoh riznih podij a b displaystyle a b yaksho a displaystyle a stalosya ranishe b displaystyle b potim b displaystyle b ne moglo statisya ranishe a displaystyle a Procesi sho skladayut rozpodilenu sistemu ne znayut vidnoshennya sho stalosya ranishe yaksho voni ne vikoristovuyut en napriklad en abo en Ce dozvolyaye rozroblyati algoritmi vzayemnogo viklyuchennya ta taki zavdannya yak nalagodzhennya chi optimizaciya rozpodilenih sistem Na cyu stattyu ne posilayutsya inshi statti Vikipediyi Bud laska rozstavte posilannya vidpovidno do prijnyatih rekomendacij