See also ebooksgratis.com: no banners, no cookies, totally FREE.

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
Monitor (programowanie współbieżne) - Wikipedia, wolna encyklopedia

Monitor (programowanie współbieżne)

Z Wikipedii

Monitor to jedno z narzędzi służących do synchronizacji procesów i wątków.

Monitor składa się z:

  • zestawu funkcji umożliwiających bezpieczne korzystanie z współdzielonego zasobu
  • mechanizmu wzajemnego wykluczania
  • pól danych, na których przeprowadzane są operacje

[edytuj] Prosty monitor w Javie

W Javie monitory są realizowane za pomocą modyfikatora synchronized. Tylko jeden wątek może w danej chwili wykonywać dla danego obiektu metodę z takim modyfikatorem. Jeżeli jakiś wątek wykonuje synchronizowaną metodę i jakiś inny wątek spróbuje wywołać tę bądź inną synchronizowaną metodę dla tego obiektu, to ten drugi wątek jest blokowany aż do chwili, gdy pierwszy zakończy wykonywanie metody monitora.

W poniższym przykładzie monitor chroni pewną liczbę całkowitą. Nie jest możliwe, by dwa procesy próbowały równocześnie zmienić jej wartość. Chociaż próba odczytania tej wartości przez dwa różne procesy równocześnie nie wyrządziłaby szkód, to metoda ta również ma modyfikator synchronized. Chroni on przed sytuacją, w której jeden wątek próbowałby odczytać wartość, a drugi zapisać.

public class IntMonitor() {
    private int zasob;

    public synchronized void zmienWartosc(int nowaWartosc) {
        zasob = nowaWartosc;
    }

    public synchronized int pobierzWartosc() {
        return zasob;
    }
}


Zalążek artykułu To jest tylko zalążek artykułu związanego z informatyką. Jeśli potrafisz, rozbuduj go.


aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -