[Java lista] thread

Laszlo.Marai at nokia.com Laszlo.Marai at nokia.com
2007. Jan. 22., H, 14:42:05 CET


  Hali!

>Ez lenne az? :)     hát őőő igen :)) ez volt
>
>hogy van benne tábla? igen 1 JTable

Tovabbra sem formazod a leveleidet. Pedig a listat olvasgatva
(ha olvasod egyaltalan, es nem csak irod) azert kb. kialakulhatott
volna egy keped arrol, hogy hogyan kene kineznie egy levelnek.
Most mar frankon keveredik egymassal az, amit te irtal, meg az,
amit en.

>    itt adodik a gond:
>    user lenyomja a gombot, indul a saját szálam tölti a táblát
>    de hopsz mondjuk a 30. sornál tart és a Timer talál egy uj sort
>    leszedi és bele akarja tenni a table-be
>    ilyenkor az első szál azonnal exception-t dob 
>(arrayindexoutof.. 31>2)

Erre irtam, hogy nem szinkronizalod a hozzaferest a JTable-hoz.
(Lasd synchronized kulcsszo - alap java ismeret.)

>    debug segitségével megállapitva ez azért van mert az első szál nem 
>ált le és olyan sort     akar irni ami nincs is!

_Nem kell leallnia_.

>szál NULL-ra
>    igen ezt teljesen rosszul csinálom!
>    az zavar be hogy a stop az depraced, és saját stop-ot kell 
>irni na de akkor miből áll a saját stop ha nem abból kinullozom
>    persze világos hogy nem ér semmit... attól még a fut a szál

Hat ha nem er semmit, akkor nyilvan nem ebbol. Nem csak a szalakat
nem erted, de meg a referenciakat sem. Van egy X objektumod (a szal
is egy objektum) erre tobb referencia mutathat. Attol, hogy te
az egyik referenciat (hivatkozast) null-ra allitod, meg semmi nem
tortenik az adott objektummal. Igen, a szalak leallitasarol magadnak kell
gondoskodni - nem vegtelen ciklust kell irni ( while( true ) ...), hanem 
minden uj ciklus elejen (vagy vegen) figyelni kell egy kilepesi feltetelt.
Mondjuk egy boolean-t amit kivulrol tudsz allitani. Persze synchronized
modon hozzaferve a valtozohoz.

De az a helyzet, hogy ebben az esetben nem kell leallitani egyik szalat
sem, csak arrol kell gondoskodni, hogy ne piszkaljak egyszerre a JTable
objektumodat. Erre a legegyszerubb megoldas a beepitett szinkronizacio
hasznalata, amit megtalalsz a kek konyvben is, meg a guglival is
barhol. Leirhatnam a megoldast, de nem fogom, mert ezt meg kell ertened,
kulonben 2 nap mulva ujra bele fogsz futni ugyanebbe a problemaba, es
meg eszre sem fogod venni, hogy ezzel mar talalkoztal valahol.

>könvy
>    persze az Java2 utikalaúz 1-ben van a párhuzamosság és 2.ban a 
>Swing.. igaz!

A kedvedert eloastam az en peldanyomat. 
16. fejezet: Parhuzamossag.    217-257 oldalak. Mindossze _negyven_
oldalrol van szo. Mondjuk lassu tempoban, jol atragva 3 ora.

  Ba'ly,
    Atleta


További információk a(z) Javalist levelezőlistáról