Avatar billede webster Nybegynder
24. september 2002 - 20:42 Der er 3 kommentarer og
1 løsning

variabel opdatering mellem tråde

hejsa

Jeg har lavet et lille program hvor en række tråde kalder en metode. En del af metodens opgave er at afgøre om den er blevet kaldet før og af hvem/hvor mange gange, hvilket den gør ved at ændre nogle variabler. Når jeg kører programmet sker der det at variablerne tilsyneladende ikke altid er opdateret når en ny tråd kalder metoden (set far den tråd). Husker noget med at der er et keyword man kan deklarere variabler med for at få dem opdateret med det samme, men jeg kan ikke huske hvad det er. Nogen der kan hjælpe?
Avatar billede soreno Praktikant
24. september 2002 - 20:50 #1
volatile skal være keywordets navn
du bør synkrinisere din metode hvis flere tråde har samtidig adgang til denne.
Avatar billede webster Nybegynder
24. september 2002 - 20:53 #2
k takker =)
Avatar billede soreno Praktikant
24. september 2002 - 20:58 #3
synkrinisere går vist ikke gennem stavekontrollen - det gør synkroniseret derimod :-)
Avatar billede webster Nybegynder
24. september 2002 - 22:58 #4
hehe jeg fangede den =) min metode er også synkroniseret, viste sig at problemet opstod i en klasse der extender thread men som ud over sin egen tråd også har besøg af andre tråde igennem nogle synchronized metoder. de tråde ændrede så på nogle variabler som objektets tråd læste på men den ændring blev ikke "overført". Volatile fiksede det =) btw der er en fin lille indføring i hvordan Volatile virker på javaworld hvis nogen har lign problemer.
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