30

30



Public TrdnsterfluwutileiBenl, b int fron di^bl- rMxl

I

ban* • b

frcmAccamt • frcn njiAnount • bm

y

Public VQld run O ł

iry I

■nil* U rut)

int toAccosrt • out) (ban*. sueO • naw rana* 11 double aoount • wxAtcunt • fet fi runflcret) barA .trans ft*r{ frcoAcc:unt. toZccount ąnoi/it ■

Threao ile*p((intj <KlA» • feth randonOll

|

\

calcu llnt<ffupte«3L«ceotion e) (l

prtuate Bani. bank pnv*te ir.t frjaAccount: o»-ivate oouOle iw*/«ciunt pnvate int repetiticns. prtttt* int y.iki10

y

java util concurrent locks.Lock 5.0

■    LOfld1t1on taCcndttlonf I zwraca obiekt warunku związany z dana blokada

java.util.concurrent loeks Condition 5.0

■    voul awaiU) wprowadza wątek do zbioru wątków oczekujących na spełnienie danego warunku

■    'c‘ 3 v /mi’.A' () odblokowuje wszystkie wątki należące do zbioru wątków oczekujących danego warunku

■    19031 i> odblokowuje jeden, losowo wybrany wątek należący do zbioru wątków oczekujących danego warunku

Stawo Kluczowe synchromzed

w poprzednich punktach omówiliśmy zastosowania obiektów Lot k i Condition 'iMÓm

przejdziemy do dalszego materiału, podsumujmy najpierw najważniejsze wiadomości dotyczące blokad 1 warunków

■    Blokada chroni blok kodu. pozwalając wykonywać go równocześnie tylko jednemu wątkowi.

■    Blokada zarządza dostępem wątków do chronionego bloku kodu

■    Z blokadą może być związany jeden lub w ięcej warunków

■    Każdy obiekt warunku zarządza wątkami, który m udało wejść do sekcji krytycznej, ale nic mogą kontynuować swojego działania.

Zanim w wersji JDK 5.0 wprowadzono interfejsy lq • i Contr:    w języku Jasa stosowano

inny mechanizm synchronizacji Począwszy już od wersji I 0 r każdym obiektem w jeżyku Java związana była niejawnie blokada. Jeśli metoda zostanie zadeklarowana z użyciem słowa kluczowego y t-r: • i;■ c. to blokada obiektu chroni całą metodę Oznacza to. 2e wątek musi uzyskać blokadę obiektu. aby wywołać ty metodę

Innymi słowy, deklaracja

pub 1C SyncnronizeO vo*0 aetncdtl

I

cało meiMy

)

jest równoważna deklaracji

Public void oetnodt)

i

mpUcuiou locktl:

try

Cliło aetCĄy

>

flnally | lirpItcitLock JitockO: I

gdzie TilicitLoci reprezentuje niejawną blokadę związaną z użyciem słowa =>*xr 'or w

" njs/-v,n Pokładzie moglibyśmy zastosować słowo kluczowe sjnenror -.red w deklaracji metody transfer należącej do klasy Bark. zamiast używać jawnej blokady

■ Metoda *nt daiijc wąi»k

/ niejawną blokadą obiektu związany jest pojedynczy    , , oczekujące watki

do zbioru wątków oczekujących Metody notify/hot^yA-Innymi słowy. wywołanie metody wd 11 lub noP fyA • i stano odpo

topi KHConiJItlOn waltO.

'"pilcuConflinon.łięnalAUił:    ,    i

gdzie tnpl leiCCondltton jest warunkiem związanym z blokadą niejawną___

Metody usH l slgnąl należą do Wąsy Cbject

nazwy awatt i signaWIl. aby umknąć konfliktu z m>____1-—-"

S.oSU„c Sl„„„ kluarow iyncnronlłffj. mo*my u,mpkmcnu»-«: kia*Bk* » sposób:


Wyszukiwarka

Podobne podstrony:
Argumenty domyślne Wartość wstawiana, gdy nie dostarczono argumentu. class Point { public: Point(int
Sheetl Rys unek public class Rysunek { int liczbaFigur = 0; FiguraO figury; public Rysunek(int
{ class Punkt { public int x, y; public void Przesuń(int dx, int dy) { public Punkt(int x, int
class Punkt{ private int x, y; public void Przesuń(int dx, int dy){ x += dx; y += dy;} public Punkt(
class Punkt{ priyate int x, y; public void Przesuń(int dx, int dy){ x += dx; y += dy;} public Punkt(
3 (366) 6 class B { public: virtual void f() {.......}}; class D : public B{ public: void f() {.....
ALG5 5.4. Kolejki FIFO 135 public: FIFO(int n)( II konstruktor kolejki o rozmiarze
Dane składowe klasy class Pralka {    // ta klasa nazywa się Pralka public:11.. . int
Specjale Maglia 8 DONNA (86) sata, iniziare a diminuire 1 p. ogni 2 ferri per 3 volte. A cm 27 (30)
Język JAVA - podstawy Kod programu: Ryba.java public class Ryba { //cechy String kolorjusek; int
18 p05 #include <stdio.h> #include <conio.c> class HojaKlasa { public: int
18 p06 #include <stdio.h> #include <conio.c> class HojaKlasa { public: int
19 p02 #include <stdio.h> class próba { public: int    aa; int

więcej podobnych podstron