distribuirani procesi vježbe 01 –uvod i threadovi vinko …vpetrice/dp/vjezbe1.pdfdistribuirani...

31
Distribuirani procesi Vježbe 01 – Uvod i threadovi Vinko Petričević Vinko Petričević

Upload: others

Post on 27-Feb-2021

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Distribuirani procesi Vježbe 01 –Uvod i threadovi Vinko …vpetrice/DP/Vjezbe1.pdfDistribuirani procesi Vježbe 01 –Uvod i threadovi Vinko Petričevi ć Gradivo i način polaganja

Distribuirani pro

cesi

Vježbe 01 –

Uvod i

threadovi

Vin

ko

Pe

trič

ev

ićV

ink

o P

etr

iče

vić

Page 2: Distribuirani procesi Vježbe 01 –Uvod i threadovi Vinko …vpetrice/DP/Vjezbe1.pdfDistribuirani procesi Vježbe 01 –Uvod i threadovi Vinko Petričevi ć Gradivo i način polaganja

Gradivo i način polaganja

�g

rad

ivo

: o

sn

ov

e j

ez

ika

C#

po

tre

bn

e z

a

raz

um

ijev

an

je d

istr

ibu

ira

no

g p

rog

ram

ira

nja

na

čin

vje

žb

i –

sv

ak

i 3

. tj

ed

an

3 s

ata

u

�n

in v

jež

bi

–s

va

ki

3.

tje

da

n 3

sa

ta u

ko

ma

du

�N

a p

rak

tik

um

u 3

će

se

de

taljn

ije r

ad

iti

C#

Page 3: Distribuirani procesi Vježbe 01 –Uvod i threadovi Vinko …vpetrice/DP/Vjezbe1.pdfDistribuirani procesi Vježbe 01 –Uvod i threadovi Vinko Petričevi ć Gradivo i način polaganja

Sintaksa

�V

rlo

slič

na

C+

+-u

, c

as

e s

en

sit

ive

�.n

et

fra

me

wo

rk i

de

nti

ča

n z

a s

ve

.n

et

ala

te

�G

oto

vo

sv

i ti

po

vi

po

da

tak

a s

u G

C p

ok

az

iva

či

(cla

ss

GC

po

ka

ziv

, z

au

zim

a p

ros

tor

na

he

ap

u,

ne

mo

ra s

e

un

išti

ti o

dm

ah

na

za

vrš

etk

u p

rog

ram

sk

og

blo

ka

; s

tru

ct

–u

niš

titi

od

ma

h n

a z

av

rše

tku

pro

gra

ms

ko

g b

lok

a;

str

uc

t –

ka

o C

++

kla

sa

, z

au

zim

a p

ros

tor

na

sto

gu

)

�k

las

a s

e m

e n

as

lije

dit

i s

am

o i

z j

ed

ne

kla

se

, a

li m

e

imp

lem

en

tira

ti v

iše

su

če

lja

�s

tru

ktu

ra n

e m

e n

as

lije

dit

i k

las

u,

nit

i s

e i

z n

je m

e

na

slje

ñiv

ati

, a

li m

e i

mp

lem

en

tira

ti s

elje

Page 4: Distribuirani procesi Vježbe 01 –Uvod i threadovi Vinko …vpetrice/DP/Vjezbe1.pdfDistribuirani procesi Vježbe 01 –Uvod i threadovi Vinko Petričevi ć Gradivo i način polaganja

Osnove jezika

�P

rog

ram

i s

u o

rga

niz

ira

ni

ka

o p

roje

kti

�S

va

ki

pro

jek

t s

ad

rži

ne

ke

ob

av

ez

ne

da

tote

ke

,

ali

mo

že

mo

do

da

ti p

roiz

vo

ljan

bro

j d

ato

tek

a i

po

dd

ire

kto

rija

(d

ob

ro j

e s

va

ki

kla

su

pis

ati

u

po

dd

ire

kto

rija

(d

ob

ro j

e s

va

ki

kla

su

pis

ati

u

za

se

bn

oj

da

tote

ci)

�K

om

pa

jlira

nje

m i

z s

vih

da

tote

ka

pro

jek

ta

na

sta

je j

ed

an

as

se

mb

ly (

.dll

ili .

ex

e),

ko

ji je

os

no

vn

a j

ed

inic

a z

a p

on

ov

nu

up

ora

bu

na

.n

et

pla

tfo

rmi

Page 5: Distribuirani procesi Vježbe 01 –Uvod i threadovi Vinko …vpetrice/DP/Vjezbe1.pdfDistribuirani procesi Vježbe 01 –Uvod i threadovi Vinko Petričevi ć Gradivo i način polaganja

Osnove jezika

�C

# j

e d

io .

ne

t p

latf

orm

e,

mo

že

ko

ris

titi

Fra

me

wo

rk C

las

s L

ibra

ry (

FC

L)

�P

rog

ram

i n

ap

isa

ni

u C

# s

e i

zv

rša

va

ju u

Co

mm

on

La

ng

ua

ge

Ru

nti

me

-u (

CL

R),

što

C

om

mo

n L

an

gu

ag

e R

un

tim

e-u

(C

LR

), š

to

om

og

uje

ko

riš

ten

je k

as

a i

mp

lem

en

tira

nih

u

bilo

ko

jem

.n

et

pro

gra

ms

ko

m j

ez

iku

Page 6: Distribuirani procesi Vježbe 01 –Uvod i threadovi Vinko …vpetrice/DP/Vjezbe1.pdfDistribuirani procesi Vježbe 01 –Uvod i threadovi Vinko Petričevi ć Gradivo i način polaganja

Jednostavan program

cla

ss

He

llo

{

sta

tic

vo

id M

ain

()

{

// i

sp

is t

ek

sta

na

ek

ran

Sy

ste

m.C

on

so

le.W

rite

Lin

e(“

He

llo W

orl

d”)

;

}}

�M

em

o k

ori

sti

ti b

ilo k

oji

tek

st-

ed

ito

r i

cs

c.e

xe

ili

VS

: F

ile -

> N

ew

->

Pro

jec

t…

�P

roje

ct

Ty

pe

s:

Vis

ua

l C

# -

> W

ind

ow

s

�T

em

pla

tes

: C

on

so

le A

pp

lica

tio

n

�O

da

bra

ti i

me

(n

pr:

He

llo)

Page 7: Distribuirani procesi Vježbe 01 –Uvod i threadovi Vinko …vpetrice/DP/Vjezbe1.pdfDistribuirani procesi Vježbe 01 –Uvod i threadovi Vinko Petričevi ć Gradivo i način polaganja

Zadatak 1

�K

ori

ste

ći

Vu

sa

l S

tud

io,

na

piš

ite

pro

gra

m k

oji

isp

isu

je p

oz

dra

vn

u p

oru

ku

�U

ite

ra

zlik

e u

pro

gra

mu

ko

jeg

je

de

fin

ira

o

wiz

za

rdw

izz

ard

Page 8: Distribuirani procesi Vježbe 01 –Uvod i threadovi Vinko …vpetrice/DP/Vjezbe1.pdfDistribuirani procesi Vježbe 01 –Uvod i threadovi Vinko Petričevi ć Gradivo i način polaganja

Osnove jezika

�C

# j

e s

tro

go

tip

izir

an

i je

zik

�Im

am

o u

gra

ñe

ne

i k

ori

sn

ičk

i d

efi

nir

an

e t

ipo

ve

�P

rem

a n

inu

sp

rem

an

ja u

me

mo

riji

se

dije

le

na

vri

jed

no

sn

e (

sto

g)

i re

fere

ntn

e (

he

ap

, G

C)

na

vri

jed

no

sn

e (

sto

g)

i re

fere

ntn

e (

he

ap

, G

C)

Page 9: Distribuirani procesi Vježbe 01 –Uvod i threadovi Vinko …vpetrice/DP/Vjezbe1.pdfDistribuirani procesi Vježbe 01 –Uvod i threadovi Vinko Petričevi ć Gradivo i način polaganja

Vrijednostni tipovi

Tip

Veličina (u

bajtovim

a)

.NET tip

Opis

bool

1Boolean

true

ilifalse

byte

1Byte

od

0d

o2

55

(od

0d

o2

8-1

)

char

2Char

po

jed

ina

čn

iUnicode

zn

ak

(‘A

’ili

‘\u

00

41

’ili

‘\\’

ili‘\

n’)

sbyte

1SByte

od

-12

8d

o1

27

(od

-27

do

27-1

)

short

2Int16

od

-32

76

8d

o3

27

67

(od

-21

5d

o2

15-1

)

ushort

2UInt16

od

0d

o6

55

35

(od

0d

o2

16-1

)

En

um

i s

tru

ct

int

4Int32

od

-21

47

48

36

48

do

21

47

48

36

47

(od

-23

1d

o2

31-1

)

uint

4UInt32

od

0d

o4

29

49

67

29

5(o

d0

do

23

2-1

)

float

4Single

7d

ec

ima

la,

od±

1,5

x1

0-4

5d

3,4

x1

03

8

double

8Double

15

-16

de

cim

ala

,o

5,0

x1

0-3

24

do±

3,4

x1

03

08

decimal

16

Decimal

28

-29

de

cim

ala

,o

1,0

x1

0-2

8d

3,4

x1

02

8

long

8Int64

od

-92

23

37

20

36

85

47

75

80

8

do

92

23

37

20

36

85

47

75

80

7

(od

-26

3d

o2

63-1

)

ulong

8UInt64

od

0d

o1

84

46

74

40

73

70

95

51

61

5

(od

0d

o2

64-1

)

Page 10: Distribuirani procesi Vježbe 01 –Uvod i threadovi Vinko …vpetrice/DP/Vjezbe1.pdfDistribuirani procesi Vježbe 01 –Uvod i threadovi Vinko Petričevi ć Gradivo i način polaganja

Osnove jezika

�Im

plic

itn

e p

retv

orb

e r

ad

e,

ak

o s

e n

e g

ub

e

po

da

ci in

t x

=5

;d

ou

ble

y =

x;

�Z

a o

brn

uto

mo

ram

o n

av

es

ti d

a ‘

zn

am

o š

ta

rad

imo

’do

ub

le y

= x

;

do

ub

le x

=5

;in

t y

= (

int)

x;

Page 11: Distribuirani procesi Vježbe 01 –Uvod i threadovi Vinko …vpetrice/DP/Vjezbe1.pdfDistribuirani procesi Vježbe 01 –Uvod i threadovi Vinko Petričevi ć Gradivo i način polaganja

Jednostavan program

us

ing

Sy

ste

m;

us

ing

Sy

ste

m.C

olle

cti

on

s.G

en

eri

c;

us

ing

Sy

ste

m.L

inq

;

us

ing

Sy

ste

m.T

ex

t;

na

me

sp

ac

e C

on

so

leA

pp

lica

tio

n1

{

cla

ss

Pro

gra

mc

las

s P

rog

ram

{

sta

tic

vo

id M

ain

()

{

str

ing

s =

Co

ns

ole

.Re

ad

Lin

e()

;

int

x =

Co

nv

ert

.To

Int3

2(s

);

for(

int

i=0

; i<

x;

++

i)

Co

ns

ole

.Wri

teL

ine

(i);

}

}}

Page 12: Distribuirani procesi Vježbe 01 –Uvod i threadovi Vinko …vpetrice/DP/Vjezbe1.pdfDistribuirani procesi Vježbe 01 –Uvod i threadovi Vinko Petričevi ć Gradivo i način polaganja

Jednostavan program

int

x;

try

try

{

x =

Co

nv

ert

.To

Int3

2(s

);

} ca

tch

{

x =

10

;}

Page 13: Distribuirani procesi Vježbe 01 –Uvod i threadovi Vinko …vpetrice/DP/Vjezbe1.pdfDistribuirani procesi Vježbe 01 –Uvod i threadovi Vinko Petričevi ć Gradivo i način polaganja

Varijable

�P

rije

ko

riš

ten

ja,

sv

ak

u v

ari

jab

lu m

ora

mo

inic

ijaliz

ira

ti

int

x=

5,

y;

y =

10

;WriteLine(“x={0}, y={1}”, x, y);

�M

em

o i

m m

ijen

jati

vri

jed

no

st

�K

on

sta

nte

mo

ram

o o

dm

ah

in

icija

lizir

ati

, i

ka

sn

ije

im s

e v

rije

dn

os

t n

e m

e m

ijen

jati

WriteLine(“x={0}, y={1}”, x, y);

co

ns

t in

t z

=1

5;

Page 14: Distribuirani procesi Vježbe 01 –Uvod i threadovi Vinko …vpetrice/DP/Vjezbe1.pdfDistribuirani procesi Vježbe 01 –Uvod i threadovi Vinko Petričevi ć Gradivo i način polaganja

string

�s

trin

g j

e n

iz z

na

ko

va

. R

az

ma

ci

se

ne

za

ne

ma

ruju

str

ing

s =

“a

bc

d

ef”

;

s =

“a

bc

\nd

ef”

;

s =

@“a

bc

\nd

ef”

;s

= @

“ab

c\n

de

f”;

s =

Co

ns

ole

.Re

ad

Lin

e()

;

Page 15: Distribuirani procesi Vježbe 01 –Uvod i threadovi Vinko …vpetrice/DP/Vjezbe1.pdfDistribuirani procesi Vježbe 01 –Uvod i threadovi Vinko Petričevi ć Gradivo i način polaganja

Operatori i tijek programa

�O

pe

rato

ri s

u i

sti

ka

o u

C+

+-u

�K

on

tro

la t

ijek

a v

rlo

slič

na

:

�fo

rea

ch

–p

rola

zi

kro

z s

ve

ele

me

nte

ne

ko

g s

pre

mn

ika

�s

wit

ch

–n

e m

ora

bit

i c

ijelo

bro

jni

tip

i m

em

o k

ori

sti

ti

goto case

slu

ča

jgoto case

slu

ča

j

sw

itc

h(i

) {

ca

se

1:

Co

ns

ole

.Wri

te(1

); g

oto

ca

se

3;

ca

se

2:

Co

ns

ole

.Wri

te(2

); b

rea

k;

ca

se

3:

Co

ns

ole

.Wri

te(3

); b

rea

k;

de

fau

lt:

Co

ns

ole

.Wri

te(“

ne

sto

dru

go

”);

bre

ak

;

}

Page 16: Distribuirani procesi Vježbe 01 –Uvod i threadovi Vinko …vpetrice/DP/Vjezbe1.pdfDistribuirani procesi Vježbe 01 –Uvod i threadovi Vinko Petričevi ć Gradivo i način polaganja

Zadatak 2

�N

ap

išit

e p

rog

ram

ko

ji z

a u

ne

še

ni

bro

j

pro

vje

rav

a j

e l

i p

ros

t

�N

ap

išit

e p

rog

ram

ko

ji u

ne

še

ni

bro

j ra

sta

vlja

na

pro

ste

fa

kto

ren

a p

ros

te f

ak

tore

Page 17: Distribuirani procesi Vježbe 01 –Uvod i threadovi Vinko …vpetrice/DP/Vjezbe1.pdfDistribuirani procesi Vježbe 01 –Uvod i threadovi Vinko Petričevi ć Gradivo i način polaganja

Slanje parametara funkciji

�S

va

ka

fu

nk

cija

mo

že

im

ati

pro

izv

olja

n b

roj

pa

ram

eta

ra p

roiz

vo

ljno

g t

ipa

�S

va

ki

pa

ram

eta

r s

e m

e s

lati

po

vri

jed

no

sti

, ili

po

Sv

ak

i p

ara

me

tar

se

mo

že

sla

ti p

o v

rije

dn

os

ti,

ili p

o

refe

ren

ci

(re

f),

a m

e b

iti

i č

isto

iz

laz

ni

pa

ram

eta

r

(ou

t).

Ta

da

se

pri

je k

ori

šte

nja

u f

un

kc

iji t

reb

a

inic

ijaliz

ira

ti.

Page 18: Distribuirani procesi Vježbe 01 –Uvod i threadovi Vinko …vpetrice/DP/Vjezbe1.pdfDistribuirani procesi Vježbe 01 –Uvod i threadovi Vinko Petričevi ć Gradivo i način polaganja

Slanje parametara funkciji

sta

tic

vo

id f

1(i

nt

x)

{ +

+x

; }

sta

tic

vo

id f

2(r

ef

int

x)

{ +

+x

; }

sta

tic

vo

id f

3(o

ut

int

x)

{

// +

+x

; o

vo

bi

bila

gre

sk

a

x =

0;

++

x;

}} sta

tic

vo

id M

ain

(str

ing

[] a

rgs

)

{

int

x =

10

;

f1(x

); C

on

so

le.W

rite

Lin

e(x

);

/

/ 1

0

f2(r

ef

x);

Co

ns

ole

.Wri

teL

ine

(x);

//

11

f3(o

ut

x);

Co

ns

ole

.Wri

teL

ine

(x);

//

1}

Page 19: Distribuirani procesi Vježbe 01 –Uvod i threadovi Vinko …vpetrice/DP/Vjezbe1.pdfDistribuirani procesi Vježbe 01 –Uvod i threadovi Vinko Petričevi ć Gradivo i način polaganja

Zadatak 3

�N

ap

išit

e f

un

kc

iju k

oja

vra

ća

na

jma

nji

pro

sti

bro

j v

i o

d d

an

og

bro

ja

�N

ap

išit

e n

are

db

u k

oja

is

pis

uje

sv

e p

ros

te

bro

jev

e m

an

je o

d d

an

og

bro

jab

roje

ve

ma

nje

od

da

no

g b

roja

�N

ap

išit

e n

are

db

u k

oja

od

do

biv

en

og

str

ing

a

na

pra

vi

pa

lind

rom

Page 20: Distribuirani procesi Vježbe 01 –Uvod i threadovi Vinko …vpetrice/DP/Vjezbe1.pdfDistribuirani procesi Vježbe 01 –Uvod i threadovi Vinko Petričevi ć Gradivo i način polaganja

Enumeracije

en

um

im

eE

nu

me

rac

ije [

:os

no

vn

iTip

= i

nt]

{

co

ns

t1 =

vri

jed

no

st1

, //

ak

o n

e s

tav

imo

po

dra

zu

mije

va

se

0

co

ns

t2 =

vri

jed

no

st2

, //

ak

o n

e s

tav

imo

, b

it c

e p

reth

od

na

+1

...

}

en

um

Te

mp

era

ture

{

led

iste

Vo

de

= 0

,

vre

lište

Vo

de

= 1

00

,

} sta

tic

vo

id M

ain

(str

ing

[] a

rgs

) {

Co

ns

ole

.Wri

teL

ine

("L

ed

ište

vo

de

: {0

}",

(in

t)T

em

pe

ratu

re.l

ed

iste

Vo

de

);

Co

ns

ole

.Wri

teL

ine

("V

reliš

te v

od

e:

{0}"

,

(in

t)T

em

pe

ratu

re.v

reliš

teV

od

e);

}

Page 21: Distribuirani procesi Vježbe 01 –Uvod i threadovi Vinko …vpetrice/DP/Vjezbe1.pdfDistribuirani procesi Vježbe 01 –Uvod i threadovi Vinko Petričevi ć Gradivo i način polaganja

Klase

cla

ss

au

tom

ob

il

{

pu

blic

in

t g

ori

vo

= 1

00

;

pu

blic

au

tom

ob

il()

{

Co

ns

ole

.Wri

teL

ine

(go

riv

o);

} ~a

uto

mo

bil(

)

{{

Co

ns

ole

.Wri

teL

ine

(go

riv

o);

}

} cla

ss

Pro

gra

m

{

sta

tic

vo

id M

ain

()

{

au

tom

ob

il a

= n

ew

au

tom

ob

il();

++

a.g

ori

vo

;

}}

Page 22: Distribuirani procesi Vježbe 01 –Uvod i threadovi Vinko …vpetrice/DP/Vjezbe1.pdfDistribuirani procesi Vježbe 01 –Uvod i threadovi Vinko Petričevi ć Gradivo i način polaganja

Nasljeñivanje

cla

ss

ku

pe

: a

uto

mo

bil

{

pu

blic

ku

pe

()

{

Co

ns

ole

.Wri

te("

Ku

pe

\t")

;

} ~k

up

e()

{

Co

ns

ole

.Wri

te(@

"Ku

pe

\t")

;

}}

} cla

ss

Pro

gra

m

{

sta

tic

vo

id M

ain

()

{

{

au

tom

ob

il a

= n

ew

ku

pe

();

++

a.g

ori

vo

;

} Co

ns

ole

.Wri

teL

ine

("k

raj\

n")

;

}}

Page 23: Distribuirani procesi Vježbe 01 –Uvod i threadovi Vinko …vpetrice/DP/Vjezbe1.pdfDistribuirani procesi Vježbe 01 –Uvod i threadovi Vinko Petričevi ć Gradivo i način polaganja

Threadovi

�p

rog

ram

i k

oje

sm

o d

o s

ad

a s

us

reta

li

izv

rša

va

li s

u s

e u

gla

vn

om

u j

ed

no

m t

hre

ad

u

(na

je

dn

oj

jez

gri

pro

ce

so

ra)

�u

ko

liko

bi

že

ljeli

up

otr

ijeb

iti

viš

e,

ili z

bo

g

�u

ko

liko

bi

že

ljeli

up

otr

ijeb

iti

viš

e,

ili z

bo

g

dru

gih

stv

ari

, p

otr

eb

no

je

kre

ira

ti v

iše

thre

ad

ov

a

�s

va

ki

thre

ad

im

a s

vo

j s

tog

(lo

ka

lne

va

rija

ble

,

pa

ram

etr

i) i

sv

oju

po

če

tnu

ru

tin

u

Page 24: Distribuirani procesi Vježbe 01 –Uvod i threadovi Vinko …vpetrice/DP/Vjezbe1.pdfDistribuirani procesi Vježbe 01 –Uvod i threadovi Vinko Petričevi ć Gradivo i način polaganja

Threadovi

�P

os

toji

viš

e n

ina

kre

ira

nja

th

rea

do

va

:

�v

oid

po

ce

tak

() {

… }

… Th

rea

d t

= n

ew

Th

rea

d(n

ew

Th

rea

dS

tart

(po

ce

tak

));

t.S

tart

();

t.S

tart

();

�v

oid

ra

di(

ob

jec

t o

) {…

}

Th

rea

dP

oo

l.Q

ue

ue

Us

erW

ork

Ite

m(n

ew

Wa

itC

allb

ac

k(r

ad

i),

pa

ram

eta

r);

Page 25: Distribuirani procesi Vježbe 01 –Uvod i threadovi Vinko …vpetrice/DP/Vjezbe1.pdfDistribuirani procesi Vježbe 01 –Uvod i threadovi Vinko Petričevi ć Gradivo i način polaganja

Kreiranje threada

us

ing

Sy

ste

m.T

hre

ad

ing

;

int

thre

ad

No

= 0

;

Pro

gra

m(i

nt

no

) {

thre

ad

No

= n

o;

}

vo

id d

rug

iTh

rea

d()

{{

for

(in

t i

= 0

; i

< 1

0;

++

i)

{

Th

rea

d.S

lee

p(1

00

);

Co

ns

ole

.Wri

teL

ine

("T

hre

ad

: {0

:D},

i=

{1:D

}",

thre

ad

No

, i)

;

}

} sta

tic

vo

id M

ain

()

{

Pro

gra

m p

1 =

ne

w P

rog

ram

(1);

Th

rea

d t

= n

ew

Th

rea

d(n

ew

Th

rea

dS

tart

(p1

.dru

giT

hre

ad

));

t.S

tart

();

// P

rog

ram

p =

ne

w P

rog

ram

(0);

p.d

rug

iTh

rea

d()

;}

Page 26: Distribuirani procesi Vježbe 01 –Uvod i threadovi Vinko …vpetrice/DP/Vjezbe1.pdfDistribuirani procesi Vježbe 01 –Uvod i threadovi Vinko Petričevi ć Gradivo i način polaganja

Thread objekt

�S

lee

p(i

nt

mili

Se

c)

–č

ek

a,

pro

ce

so

r n

ije

op

tere

će

n

�S

pin

Wa

it(i

nt

vri

jem

e)

–v

rti

pe

tlju

od

reñ

en

o

vri

jem

e.

Ov

isi

o p

roc

es

oru

ko

liko

, p

roc

es

or

je

vri

jem

e.

Ov

isi

o p

roc

es

oru

ko

liko

, p

roc

es

or

je

op

tere

će

n

�V

ola

tile

Re

ad

(ob

j) –

čit

a p

od

ata

k i

z m

em

ori

je

�V

ola

tile

Wri

te(o

bj)

–p

iše

po

da

tak

u m

em

ori

je

Page 27: Distribuirani procesi Vježbe 01 –Uvod i threadovi Vinko …vpetrice/DP/Vjezbe1.pdfDistribuirani procesi Vježbe 01 –Uvod i threadovi Vinko Petričevi ć Gradivo i način polaganja

Thread klasa

�S

tart

() –

po

kre

će

th

rea

d

�A

bo

rt()

–p

rek

ida

iz

vrš

av

an

je t

hre

ad

a

�S

us

pe

nd

() –

pa

uz

ira

th

rea

d

�R

es

um

e()

–p

ok

reć

e p

au

zir

an

i th

rea

d

�J

oin

(in

t m

iliS

ec

) –

če

ka

za

vrš

eta

k t

hre

ad

a

�In

terr

up

t()

–p

rek

ida

če

ka

nje

th

rea

da

.

Page 28: Distribuirani procesi Vježbe 01 –Uvod i threadovi Vinko …vpetrice/DP/Vjezbe1.pdfDistribuirani procesi Vježbe 01 –Uvod i threadovi Vinko Petričevi ć Gradivo i način polaganja

Primjeri

�P

rim

jere

sta

rta

mo

ta

ko

da

u V

S-u

kre

ira

mo

no

vi

pro

jek

t, o

da

be

rem

o C

# i

Co

ns

ole

Ap

plic

ati

on

, te

ko

pir

am

o k

ôd

pri

mje

ra u

gla

vn

u .

cs

da

tote

ku

gla

vn

u .

cs

da

tote

ku

Page 29: Distribuirani procesi Vježbe 01 –Uvod i threadovi Vinko …vpetrice/DP/Vjezbe1.pdfDistribuirani procesi Vježbe 01 –Uvod i threadovi Vinko Petričevi ć Gradivo i način polaganja

Lock –

primjer 1.1

�g

lob

aln

e i

sta

tič

ke

va

rija

ble

(a

i d

rug

i re

su

rsi

mo

gu

bit

i) z

aje

dn

ičk

i th

rea

do

vim

a,

pa

je

po

ne

ka

d p

otr

eb

no

os

igu

rati

da

sa

mo

je

da

n

thre

ad

pri

stu

pa

va

rija

bli

thre

ad

pri

stu

pa

va

rija

bli

�lo

ck

(ob

j) –

za

klju

ča

va

kri

tič

ni

dio

da

. A

ko

je

ob

jek

t z

ak

ljuč

an

, d

rug

i th

rea

d n

em

e u

ći

u

taj

dio

da

.

�o

bj

je b

ilo k

oji

ob

jek

t iz

ve

de

n i

z O

bje

ct

(da

kle

sv

ak

a k

las

a)

Page 30: Distribuirani procesi Vježbe 01 –Uvod i threadovi Vinko …vpetrice/DP/Vjezbe1.pdfDistribuirani procesi Vježbe 01 –Uvod i threadovi Vinko Petričevi ć Gradivo i način polaganja

AutoResetEvent –primjer 1.2,

1.3

�W

ait

(in

t m

iliS

ec

) –

če

ka

sv

e d

ok

ne

is

tek

ne

vri

jem

e i

li

ob

jek

t n

e b

ud

e s

ign

aliz

ira

n n

are

db

om

Se

t. S

am

o j

ed

an

thre

ad

mo

že

na

sta

vit

i s

ra

do

m,

te o

bje

kt

od

ma

h p

rela

zi

u

ne

sig

na

lizir

an

o s

tan

je

�S

et(

) –

sig

na

lizir

a d

a j

ed

an

th

rea

d m

e n

as

tav

iti

sa

Se

t()

–s

ign

aliz

ira

da

je

da

n t

hre

ad

mo

že

na

sta

vit

i s

a

rad

om

(a

ko

če

ka

)

�R

es

et(

) –

ak

o j

e o

bje

kt

u s

ign

aliz

ira

no

m s

tan

ju,

pre

laz

i u

ne

sig

na

lizir

an

o

�M

an

ua

lRe

se

tEv

en

t –

na

ko

n S

et,

sv

i č

ek

aju

ći

thre

ad

ov

i

mo

gu

na

sta

vit

i s

ra

do

m,

sv

e d

ok

se

ne

po

zo

ve

Re

se

t.

Page 31: Distribuirani procesi Vježbe 01 –Uvod i threadovi Vinko …vpetrice/DP/Vjezbe1.pdfDistribuirani procesi Vježbe 01 –Uvod i threadovi Vinko Petričevi ć Gradivo i način polaganja

Ostale sinhronizacijske rutine

�P

os

toje

i b

rojn

i d

rug

i n

ini

za

kre

ira

nje

thre

ad

a,

te z

a a

sin

hro

no

po

ziv

an

je f

un

kc

ija

(ne

ki

su

na

ve

de

ni

u p

rim

jeri

ma

)

�S

ys

tem

.Th

rea

din

g s

ad

rži

još

mn

tvo

Sy

ste

m.T

hre

ad

ing

sa

drž

i jo

š m

no

štv

o

sin

hro

niz

ac

ijsk

ih m

eh

an

iza

ma

, p

op

ut

Se

ma

fora

, M

ute

xa

, z

a d

eta

lje p

og

led

ati

he

lp

od

Sy

ste

m.T

hre

ad

ing