[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