[Java lista] szálkezelés?
Laszlo.Marai at nokia.com
Laszlo.Marai at nokia.com
2007. Jan. 30., K, 12:42:33 CET
Hali!
> Szeretném kihangsúlyozni, hogy a tegnapi nap elolvastam a kék
> Java könyv első kötetében a 15ös fejezetet "Párhuzamosság, szálkezelés".
Nocsak. Mondjuk latszik is a kerdeseken.
> Már-már csak félve teszem fel kérdéseimet, amik némi zavarodásból adódnak,
> az itt és a könyvben olvasottakból.
Szerintem most fejezd be a provokalast. Akkor is, ha valoban ugy erzed, hogy
bunkok vagyunk veled. A szakmai kerdesek johetnek.
> Thread osztály öröklése és a Runnable interfész implementálása témakör.
> A könyv nagyon sok példában a Thread-et örökölteti,
Hat ez sajnalatos. :)
> persze megemlíti (és igen értem is), hogy ott a Runnable is.
> Ha az osztályunk már öröklődik akkor muszály az implementálás->ok ezt értem.
> Van-e valami más ok amiatt akkor is jobban járok ha implementálom a Runnable-t,
> minthogy örököljem a Thread osztályt?
Mozes Zoltan (remelem jol tippeltem meg a sorrendet :) ) angol idezeteben mar szerepelt,
de azert leirom magyarul is... Mukodesi szempontbol nincs kulonbseg, tervezesi szempontbol
van. Az meg rovid tavon a szepsegrol szol, hosszu tavon pedog a program
tovabbfejleszthetosegerol, karbantarthatosagarol es a meglepetesek elkeruleserol.
A jo objektum orientalt (OO) megozelites az, hogy ne hasznaljunk oroklodest, ha nem
muszaj. Egy csomo kellemetlen meglepetes szarmazhat belole (pl. fragile base class
problem: http://en.wikipedia.org/wiki/Fragile_base_class ). Plusz ugye az oroklodes
az logikai kapcsolatot is kifejez a ket osztaly kozott. A leszarmazott az az osnek
egy specializalt valtozata. (Pl. a Kutya az egy specialis Allat)
Ha te keszitesz egy kulon szalban futtatando feladatot, az logikailag nem a szal
specializalasa. Sokkal pontosabb modellezese a valosagnak, ha azt mondjuk, hogy
van egy feladatod, amit egy szal segitsegevel (egy kulon szalban) futtatsz.
> viszont amiben ezt a példát mutatja az is extends Thread
> bár simán lehet, hogy csak nem furcsa
Nekem is :). Minek tartana magara referenciat egy objektum?
> azt mondja a könyv, hogy a Runnable-nél kell ilyen, erre bemutatja
> egy olyan osztályon ami extends Thread
> kérdésem: van-e valami számottevő különbség a kettő között?
A kerdes csak az, hogy valahol hasznalja-e masra azt a referenciat.
Szerintem egy Runnable-nek nem illik (es nem is szukseges) referenciat
hurcolni az ot futtato szalra, mert minek. Az idezett kodbol csak
az latszik, hogy referenciat hasznal boolean helyett a kilepo
feltetel vizsgalatahoz. (Mukodesileg mindegy, hogy azt vizsgalod,
hogy ref == null, vagy azt, hogy isRunning == false, kifejezoerteke
persze az utobbinak nagyobb.)
Ba'ly,
Atleta
További információk a(z) Javalist levelezőlistáról