Avatar billede kube Nybegynder
25. september 2002 - 16:01 Der er 4 kommentarer og
1 løsning

extends syncronized

hej Eksperter,
jeg er for nyligt blevet oplyst om syncronized i Java. Men hvordan det virker er mig ikke rigtigt faldet ind endnu, derfor håber jeg på en debat!
Hvad jeg har forstået indtil videre er, hvis at kun én proces kan "være" i en metode ad gangen, men den proces der er aktiv i metoden kan godt blive udelukket af en anden metode og blive aktiv igen når den anden proces er kørt! Men hvordan fungere det med det data (variable) der er i metoden, vil dataene være det samme for den første proces der kørte eller er de blevet ændret af den anden proces der kørte? (for så er dataene jo uberegnelige)...

hvad sker der med dataene
Avatar billede magoo20000 Nybegynder
25. september 2002 - 16:18 #1
Med keyword'et syncronized menes, at delete data bliver låst, når en proces er i sin kritiske region.
Hvis en klasse indeholder bare een metode, der er syncronized, så er klassen en monitor, og hvis der fx. er en tilskrivBeløb-metode, der arbejder på et kontoobjekt, så er dette låst for alle andre - ellers vil der jo opstå inkonsistente data. Det er altså en måde at forholde sig til samtidighedsproblematikken på.
Avatar billede kube Nybegynder
25. september 2002 - 16:28 #2
ja, men hvad jeg har forstået kan en proces der kører i en monitor/syncronized godt blive udelukket (exclusion) af en anden proces eller bare blive midlertidigt stoppet hvis dens timer udløber.

eks.
int i;
void tilskriv(int beloeb){
i= beloeb;
//<= (her bliver den første proces midlertidigt udelukket og den anden proces går kører og ændre i)

System.out.println(i);
}
_______________
Så er i altså gemt således at den første process kan regne med i er hvad den satte den til! - er det det du mener?
Avatar billede magoo20000 Nybegynder
25. september 2002 - 16:39 #3
Jeg mener (i Java), at en proces ikke bare kan blive udelukket, når den benytter en syncronized-metode. Men hvis den nu alligevel kan, så er der helt sikkert taget højde for, at i har den rette værdi, når den anden proces tager over.
Avatar billede kube Nybegynder
25. september 2002 - 16:59 #4
okay, takker for hjælpen.
Avatar billede disky Nybegynder
25. september 2002 - 17:16 #5
Den absolut bedste bog om Tråde i java finder du her:
http://www.bookshop.co.uk/ser/serdsp.asp?shop=20037&isbn=1893115100&DB=224

Den er GULD værd.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester