roznica
Iyo - 24-10-2005 19:54
roznica
witam,
jaka jest roznica miedzy postaciami
public synchronized void method(){ /* jakis kod */ }
a
public void method(){ synchronized(this){ /* jakis kod */ } }
moim zdaniem nie ma zadnej roznicy ale pewna osoba twierdzi ze jest, chcialbym sie zapoznac z wasza opinia
pozdrawiam Michal
ps. oczywiscie /* jakis kod */ w wyzej zamieszczonym listingu to oczyswiscie w obu przypadkach ten sam kod
a1 - 24-10-2005 19:54
Iyo wrote: > witam, > > jaka jest roznica miedzy postaciami
Nie ma zadnej roznicy. Te dwa zapisy daja w efekcie to samo dzialanie.
--
a1
Twelve Hungry Mammoths - 24-10-2005 19:54
On Mon, 24 Oct 2005 20:16:46 +0200, Iyo <prosze@do.mnie.nie.pisac> wrote:
> witam, > > jaka jest roznica miedzy postaciami > > public synchronized void method(){ > /* > jakis kod > */ > } > > a > > public void method(){ > synchronized(this){ > /* > jakis kod > */ > } > } > > moim zdaniem nie ma zadnej > roznicy
jest: ta pierwsza jest krotsza (-:
wiecej na http://mindprod.com/jgloss/synchronized.html
pzdr szeryf
Zbyszek Malec - 24-10-2005 19:54
a1 wrote (tak! stara dobra wrotka!):
> Nie ma zadnej roznicy. Te dwa zapisy daja w efekcie to samo dzialanie.
Wg prowadzącego pewien przedmiot na mojej uczelni, jest drobna różnica semantyczna między tymi dwoma postaciami. Widzę że kolega Iyo mało ambitnie do tematu podszedł :P
-- Zbigniew Malec Ustronie:104 gg:2756100
a1 - 25-10-2005 10:58
Zbyszek Malec wrote: > a1 wrote (tak! stara dobra wrotka!): > > >>Nie ma zadnej roznicy. Te dwa zapisy daja w efekcie to samo dzialanie. > > > Wg prowadzącego pewien przedmiot na mojej uczelni, jest drobna różnica > semantyczna między tymi dwoma postaciami. Widzę że kolega Iyo mało ambitnie > do tematu podszedł :P
Nie ma patrz: JLS 8.4.3.6. Efekt dzialanie tego kodu jest dokladnie ten sam. Drobne roznice moga pojawic sie w implementacji maszyny wirtualnej np. w pjavie monitor byl pobierany w momencie wykonywanie instrukcji wywolania metody przed utworzeniem dla niej ramki na stosie, w CDC o ile dobrze pamietam (przynajmniej w reference implementation) te zapisy byly w 100% jednoznaczne (call, utworzenie rakmki wykonanie monitorenter).
--
a1
Zbyszek Malec - 27-10-2005 23:59
a1 wrote (tak! stara dobra wrotka!):
> Nie ma patrz: JLS 8.4.3.6.
Już patrzę.
> Efekt dzialanie tego kodu jest dokladnie ten > sam.
Nie mówię że nie, ale chodziło tu o różnicę semantyczną tych dwóch zapisów (nawet jeśli generują ten sam bytecode, czy też w inny sposób działają dokładnie tak samo). Być może jakas istnieje?
-- Zbigniew Malec Ustronie:104 gg:2756100
a1 - 27-10-2005 23:59
Zbyszek Malec wrote:
> Nie mówię że nie, ale chodziło tu o różnicę semantyczną tych dwóch zapisów > (nawet jeśli generują ten sam bytecode, czy też w inny sposób działają > dokładnie tak samo). Być może jakas istnieje
no wlasnie bytecode nie jest taki sam, w przypadku pierwszym nie ma wogole instrukcji monitorenter i monitorexit w kodzie wygenerowany dla metody za miast tego metoda jest ma ustawiona flage synchronized.
--
a1
Iyo - 27-10-2005 23:59
> >> Nie ma zadnej roznicy. Te dwa zapisy daja w efekcie to samo dzialanie. > > Wg prowadzącego pewien przedmiot na mojej uczelni, jest drobna różnica > semantyczna między tymi dwoma postaciami. Widzę że kolega Iyo mało > ambitnie > do tematu podszedł :P
:P w zyciu a w szczegolnosci na wyzej wspomianej uczelni nauczylem sie ze czas to pieniadz, moze podszedlem do problemu malo ambitnie ale za to bardzo ekonomicznie :P a btw. pamietam ze kiedys (dawno temu) toczyla sie tu dyskusja na temat roznicy pomiedzy tymi konstrukcjami ale z tego co pamietam to nie wyniklo z niej wiele
pozdrawiam Michał US 417
Zbyszek Malec - 27-10-2005 23:59
Iyo wrote (tak! stara dobra wrotka!):
> a btw. pamietam ze kiedys (dawno temu) toczyla sie tu dyskusja na > temat roznicy pomiedzy tymi konstrukcjami ale z tego co pamietam > to nie wyniklo z niej wiele
Też pamiętam ten wątek. Mam nadzieję że to nie będzie pytanie na kolokwium ;)
-- Zbigniew Malec Ustronie:104 gg:2756100
Krzysztof Rudnik - 27-10-2005 23:59
Iyo wrote:
> witam, > > jaka jest roznica miedzy postaciami > > public synchronized void method(){ > /* > jakis kod > */ > } > > a > > public void method(){ > synchronized(this){ > /* > jakis kod > */ > } > } > > moim zdaniem nie ma zadnej > roznicy ale pewna osoba twierdzi > ze jest, > chcialbym sie zapoznac z wasza opinia
Kiedys bylem na kursie w J. Bieleckiego, i tez mowil ze w jakis przypadkach jest roznica. Dokladnie nie pamietam, ale chyba dotyczylo to obliczania/przekazywania parametrow (this ?) - w wersji b cos jest obliczane poza sekcja krytyczna. Byl na to jakis przyklad, ale za nic nie moge sobie przypomniec o co chodzilo.
-- Krzysiek Rudnik
a1 - 27-10-2005 23:59
Krzysztof Rudnik wrote:
> Kiedys bylem na kursie w J. Bieleckiego, i tez mowil > ze w jakis przypadkach jest roznica. Dokladnie nie > pamietam, ale chyba dotyczylo to obliczania/przekazywania > parametrow (this ?) - w wersji b cos jest > obliczane poza sekcja krytyczna. Byl na to jakis przyklad, > ale za nic nie moge sobie przypomniec o co chodzilo.
Naprawde nie ma roznicy, poza wygenerowanym baytcode, pisze o tym i w JLS i VM spec, od strony semantyki operacyjnej te zapisy sa rownowazne, tak jak wspominalem jedyna roznica, ktora moze sie pojawic (ale ona naprawde nie wplywa w zaden sposob na semantyke tych zapisow) to to ze najpier jest monitorenter a potem wykonywany jest wlasciwe wywolanie funkcji (lub odwortnie w wypadku drugiej formy zapisu), nie wplywa to jednak na ewaluacje argumentow - to jest zawsze przed monitorenter ani tym bardziej this'a - ten musi byc znany zeby mozna na nim bylo zrobic monitorenter.
--
a1
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
oracle+primary key
nude females
[PGSQL] Sortowanie po statusie - troche skomplikowane
Jak ustawić PS, żeby było widać ikonki poleceń?
ACCESS 2003
sp_executesql ? co to wlasciwie robi?
MySQL i PostrgresSQL na jednym serwerze.
=?iso-8859-2?q?[ms_sql]_Sprawdzenie_kto_usun=B1=B3_dane_w_tabeli_=3F?=
=?iso-8859-2?q?JEE_-_z_czym_to_si=EA_je_=3F?=
co to za font
zanotowane.pldoc.pisz.plpdf.pisz.pltejsza.htw.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|