20. marts 2003 - 20:37Der er
11 kommentarer og 1 løsning
RMI server med tråde/Thread
Jeg har forsøgt at finde ud af om rmi vha. remote calls opretter en ny selvstændig tråd som så kan styres ved med syncronized metoder på serveren. Jeg har testet dette, men flere klienter får lov at tilgå samme metode på en gang selv om denne er synchronized ?? Skal jeg evt selv oprette nye tråde på serveren når der kommer et request over Rmi´en fra klienterne ?? - Hvis dette er løsningen vil jeg meget gerne have et par ide´er eller endnu bedre eksempler.... På forhånd tak Dennis
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Det mener jeg bestemt også, men når jeg fx. tester denne metode på serveren:
public synchronized boolean antalValgt(int id, int antal) throws RemoteException, InterruptedException { System.out.println("goddag"); this.wait(15000); System.out.println("Farvel...."); return bookingkontroller.antalValgt(id, antal); }
-får jeg fx. 3 goddag efterfulgt af 3 farvel, hvor det burde være goddag,farvel,goddag, osv når jeg kalder ind fra 3 klienter... Hvad kan der være galt ??
det virker som en god ide´ men nu får jeg desværre kun "goddag" og så en exception : IlligalMonitorStateException med meddelsen at "current thread not owner" ???
du er jo bare super arne V ! Nu får jeg "goddag-farvel" lige efter planen !!! Men hvis du kan/gider må du gerne forklare mig lidt mere om hvad vi ændrede ved at synshronisere på klassen... Mange tak for hjælpen !!
synchronized på metoden svarer til at synchronize på instansen.
Hvis RMI serveren starter en tråd og laver en: klassenavn k = new klassenavn(); k.antalValgt(id, antal); for hver request, så synkroniserer hver tråd mod sit eget objekt d.v.s. at de slet ikke synkroniserer mod hinanden.
Den konstruktion jeg foreslog betyder at de synkroniserer mod et fælles object (som jeg af systematiske årsager vælger at lade være klassen selv).
Endnu engang mange tak for hjælpen...jeg havde overset detaljen med at rmi serveren lavede en ny tråd og dermed en ny instans af klassen
Synes godt om
Ny brugerNybegynder
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.