Tema: Re: Java applet ir synchronized metodai
Autorius: toots
Data: 2010-04-08 16:08:27
sinchronizavimo principas gan paprastas - rakini (sinchronizuoji) kodo 
gabala kuri naudos/gali naudoti keli thread'ai. Tas ypac pasakytina apie 
duomenis, kurie gali but modifikuoti. Jeigu keli Thread'ai gali modifikuot 
masyva
reikia padaryt tik viena vieta per kuria tas butu daroma, kuria galima butu 
sinchronizuot. Tam kad ir modifikuojantis ir skaitantis Threadai butu 
sinhronizuoti galima tiesiog sinchronizuoti su tuo paciu objektu, pvz

public class Dummy {

private List list;
private Object lock = new Object();

public void addValue(Object value) {
    synchronized(lock) {
        list.add(value);
    }
}

public Object getValue() {
    synchronized(lock) {
        //skaitom lista
    }
}

tokiu budu jei kas gavo locka ir keicia lista visi kiti stovi eilej ir 
laukia kol lockas bus laisvas ir jau po to mato pakeista lista.

"Jornada Del Muerto" <ask@me.email> wrote in message 
news:hpk39o$1al$1@trimpas.omnitel.net...
> Sveiki,
>
>    Ne taip senai pradejau dirbt su java, kurti appletus kurie daug dirba 
> su grafika, na tiksliau zaidimus ir pas mane branduolyje naudojasi 
> threadas kuris atsako uz ekrano perpiesima bei zaidimo heartbeat funkcija 
> (laikas nuo laiko objektu dalyvaujanciu zaidime apdirbima, toki kaip ju 
> judejimas, kazkokios kitos life cycle funkcijos). Naudoju gan standartine 
> ideologija, yra scena ir aktoriai (zaidime dalyvaujantys objektai). Na ir 
> zinau apie toki funkciju modifikatoriu kaip synchronized taciau kazkaip 
> neradau gero aprasymo kaip ji naudoti efektyviai.
>
>    Vat ir paleidus is eclipse editoriaus rodos viskas graziai veikia, o 
> jei appletas leidziasi is web tai retkarciais man jis luzteli butent darbe 
> su masyvu kiek pastebejau, kad buna kartais kreipiamasi i jau 
> neegzistuojanti aktoriu (na jie turi givybe, gali mirti ir tada buna 
> automatiskai heartbeate pasalinami), kaip suprantu blogai sudeliojas 
> synchronized modifikatorius ar tai ne visur.
>
>    Gal kas gali apsviesti kaip ji (synchronized) efektyviai naudoti ir kur 
> tiksliai reikia delioti? as lyg sudejas ant visu zemo lygio funkciju 
> kurios i masyva kreipiasi bet kartais tai vistiek nutinka, na bet kokia 
> info kuri paaiskintu tolkom apie synchronized nekenktu..