Académique Documents
Professionnel Documents
Culture Documents
INSAT
TD2
:Syst
èmesTempsRéel
Thr
eads-Jav
a
Pr
imitivessurl est hr eads:
v oidset Priorit
y(i ntnewPr i
orit
y)
st aticvoidy i
eld()
sy nchroni zed(unObj et)
{/ /section crit
ique}
l.l
ock( )
;/ /sect i
on criti
quel .
unlock();
st aticThr eadcur rentThread(): Permetd' obt enirl
et hreadcour ant
.
st aticvoidy i
eld(): Laisseunechanceauxaut resthreadsdes' exécuter.
st aticvoidsl eep( longms)t hrowsI nterruptedExcept i
on: Suspendl '
ex écut i
ondut hreadappelant
pendantl adur éei ndiquée(nepasut il
iserceci àdesf i
nsdesy nchronisation!).
v oidinterrupt ():pr ovoquesoi tlalevéedel '
ex cepti
onI nterr
uptedExcept ionsi l'
activ
itéestbl
oquée
suruneopér ationdesy nchronisati
on, soitleposi ti
onnementd' uni
ndi cateurinterrupted.
v oidjoin(): Attent ebloquant edel atermi naisondel 'exécutiondut hread( jusqu'
àcequel a
mét hoder un( )associ éeauThr eadai tfinides' exécuter).
wai t
():let hreadqui appellecettemét hodeestbl oquéj usqu'àcequ'unaut rethreadappellenoti
fy(
)
ounot if
y All().
Exer
cice1
cl
assTex
tendsThr
ead{ booleanshoul
dRun=t
rue;
Stri
ngm
;
T(
Stri
ngm ){supper
(m)
;t
his.
m=m ;
}
publ
i
cvoi
drun(
){whi
l
e(shoul
dRun){ Syst
em.out.pr
intl
n("
message"+m);
Sy
stem.
out.
pri
ntl
n(Thread.
curr
ent
Thread(
).
get
Name(
)); }
}}
….
{TT1=newT(
"T1"
),T2=newT(
"T2"
),
T3=newT(
"T3"
)
; T1.
star
t()
;T2.
star
t()
;T3.
star
t()
;
}
1- Quelestlerésultatd’exécut
ion.
2- Défi
niruneexécut ionenut i
l
isantlapri
ori
t v
é.(oidset
Prior
ity(
intpri
ori
ty)
;i
ntget
Prior
it
y()
)
3- Modifi
erl epr ogrammepourqu’ ilpui
sseav oi
runeex écuti
onquibascul ed’unemanièr
e
équi
tableentrelest hreads(yi
eld(
))
4- Fai
teunesy nchronisation(r
endez -
vous)entr
elesthreadst elqueonaur al’
exécuti
ondeT3
unefoislesthreadsT1etT2t erminent(joi
n()
).
Exer
cice2
:
fi
nall
ongdebut=Sy stem.curr
ent
TimeMill
is(
);
TimerTaskaf
ficheTemps=newTi merTask(){
publi
cv oidrun(
){Sy
stem.out
.pri
ntl
n(Syst
em.cur
rent
TimeMi
ll
is(
)-debut
);
}}
;
Timerti
mer=newTi mer (
);Timer.
schedul
e(affi
cheTemps,0,
2000);
1- Expl
i
querl
erésul
tatduprogr
ammesui vant.
2- Cr
éerunthr
eadpériodi
quequis’
exécut
et outl
es3savec«
sleep
»
3- Cr
éerunthr
eadpériodi
quequis’
exécut
et outl
es3savecaveclaclasse«
ti
mer
».
4- Cr
éerunthr
eadpériodi
quequis’
exécut
eunef oist
outl
es3s,uneaut r
efoi
stoutl
es4s.
Exer
cice3
:
1- Réali
serunpr ogrammeper mett
antd’implémenterlesvéroui
lageavecLOOKetUNLOOK.I l
faudr
autil
i
ser: synchr
onized,wai
t()etnotif
y().
2- Réali
serun pr ogramme quiper metd’ implémenterles pr
imiti
ves de communi
cat
ion par
événementlogiqueencréantlesprimit
ives
:set,r
eset,wai
t.
Exer
cice4
:
Défi
nirunprogrammeJAVAquisi
mulel
efonct
ionnementdusy
stèmeselonunGraphcetdonné.I
lest
i
mpér at
ifd’
util
i
serlapr
ogr
ammat i
onlemulti
-t
hreadi
ngaveclesmécanismesdesy nchr
onisat
ions
appr
opr i
és.